转换日历对​​方使用NodaTime库(Convert calendars to each othe

2019-09-22 16:00发布

我用野田的时间来处理DateTime的问题,我看了几乎所有的文件,但我有一些问题的日历转换成对方,

  1. 首先,有多少日历是由野田支持?

    由于CalendarSystem说,有仅4日历:

    一个)CopticCalendar / B)的GregorianCalendar / c)的伊斯兰历/ d)JulianCalendar

    因此,如何对其他日历系统?

  2. 我用波斯日历又名贾拉利日历 ,那么,有没有办法使用NodaTime这个日历吗? 而如何将其转换为阳历?

  3. 对我来说,最终的目标是既时间(特区)和日期转换为UTC时区和格鲁吉亚日历。 例如现在yyyy/MM/dd - HH:mm:ss )在Asia/Tehran时区和波斯日历是:(1391年6月30日- 10时01分15秒), 现在在格鲁吉亚日历和UTC是(2012 / 09/20日 - 5时01分15秒),所以你有什么建议吗? 时间分别都无所谓可言,但到目前为止,我没有任何想法(在NodaTime),并且是有什么办法这两个转换一个过程或方法?

Answer 1:

  1. 是的,目前这些都是我们支持的唯一的日历系统。

  2. 不,我们没有为此刻的波斯日历的支持。 您可以提交功能请求,但我们更可能有兴趣在发布1.0版门下手,我怕。

  3. 目前尚不清楚你所说的“特区”的意思 - 但它再次听起来,你需要为这个波斯日历真正发挥作用。 如果.NET支持的波斯历法,您可以将其解析到一个DateTime第一,然后将其转换成一个野田时间类型......我很抱歉,我们不支持在目前的波斯历法,而且我希望能够通过包装类型,支持BCL日历(就像我们做TimeZoneInfo ),但不会是任何时间很快,我害怕。



Answer 2:

对于其他搜索相同关键字的缘故,支持波斯历法已添加(我目前使用的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());


文章来源: Convert calendars to each other Use NodaTime library