.net中的Oracle函数to_char(date,“IW”)

.net中的Oracle函数to_char(date,“IW”)

问题描述:

什么是Oracle to_char(date,“IW”)函数的.net等效项(返回星期编号)。我尝试过使用CultureInfo.CurrentCulture.Calendar.GetWeekOfYear(日期,CalendarWeekRule.FirstFullWeek,DayOfWeek.Monday),但有些结果不匹配。不知道我应该为CalendarWeekRule和DayOfWeek枚举传递什么值。.net中的Oracle函数to_char(date,“IW”)

它看起来像Oracle使用ISO-8601定义的“周年”,而不是相当于,它支持.NET开箱即用。然而,this blog post给出了一些你可以用来修饰它的替代代码。另外,我想知道我的Noda Time项目是否给你正确的结果(你总是可以使用它而不是DaetTime :) - 如果你可以给一些示例输入,Oracle输出和.NET输出(尤其是在不同的地方)对我有用。

+0

谢谢乔恩。 我的数据集包含2191天(2006年至2011年底这段时间)。 我在.Net中使用了Oracle中的函数TO_CHAR(date,'IW')和.Net中的 CultureInfo.CurrentCulture.Calendar.GetWeekOfYear(from,CalendarWeekRule.FirstFullWeek,DayOfWeek.Monday)。 以下是不匹配的行的链接:http://notepad.cc/share/U6ZetqDI6N。 这些包括例如2008年1月8日,甲骨文输出值为2而.net,与给定的参数,输出1. – Fikre

+0

谢谢 - 我会添加适当的单元测试野田时间:) –

+1

@Fikre:谢谢非常重要 - 我已经验证了Noda Time中这些日期的年底/年初,并且它们都与Oracle相匹配:http://code.google.com/p/noda-time/source/diff?spec = svn6f2df473f00c8b70be1239251c5e6a9a1ab8a07b&R = 6f2df473f00c8b70be1239251c5e6a9a1ab8a07b&格式=侧&路径=/SRC/NodaTime.Test/LocalDateTest.BasicProperties.cs –