我使用Noda Time来处理DateTime
问题,我几乎阅读了所有documents但我将日历转换为彼此存在问题,
首先,Noda支持多少个日历?
正如CalendarSystem
所说,只有4个日历:
a)CopticCalendar / b)GregorianCalendar / c)IslamicCalendar / d)JulianCalendar
那么其他日历系统呢?
我使用Persian Calendar aka Jalali Calendar,那么有没有办法在NodaTime中使用这个日历?以及如何将其转换为格里高利历?
我的最终目标是将时间(特殊区域)和日期转换为UTC时区和格鲁吉亚日历。例如yyyy/MM/dd - HH:mm:ss
时区中的现在(Asia/Tehran
)和波斯日历是:(1391/06/30 - 10:01:15)和现在在格鲁吉亚日历和UTC是(2012/09/20 - 05:01:15),所以你的建议是什么?时间单独根本不重要,但日期,我对它没有任何想法(在NodaTime中),有没有办法在一个过程或方法中转换这两个?
答案 0 :(得分:3)
是的,目前这些是我们支持的唯一日历系统。
不,我们目前对波斯日历没有任何支持。你可以提交一个功能请求,但我们更有可能有兴趣将1.0打开,我担心。
目前尚不清楚“特区”的含义是什么 - 但听起来又像是这样,你需要波斯日历才能真正发挥作用。如果.NET支持波斯日历,您可以先将其解析为DateTime
,然后将其转换为Noda Time类型...我很抱歉我们目前不支持波斯语日历,而且我喜欢能够通过包装类型来支持BCL日历(正如我们对TimeZoneInfo
所做的那样),但这不会很快,我担心。< / p>
答案 1 :(得分:0)
为了搜索类似关键字的其他人,添加了对波斯语日历的支持(我目前正在使用v1.3)。
某些日历有更多设置,因此简化了此示例:
var now = DateTime.Now;
var nodaNow = new NodaTime.LocalDate(now.Year, now.Month, now.Day);
var cal = nodaNow.WithCalendar(CalendarSystem.GetPersianCalendar());
Console.WriteLine(cal.ToString());