2

我使用Noda Time来处理DateTime问题,我阅读了几乎所有的文档,但是在将日历相互转换时遇到了一些问题,

  1. 首先,Noda 支持多少个日历?

    如前所述CalendarSystem,只有 4 个日历:

    a)CopticCalendar / b)GregorianCalendar / c)IslamicCalendar / d)JulianCalendar

    那么其他日历系统呢?

  2. 我使用波斯日历又名 Jalali 日历,那么有没有办法在 NodaTime 中使用这个日历?以及如何将其转换为公历?

  3. 我的最终目标是将时间(在特区)和日期都转换为 UTC 时区和格鲁吉亚日历。例如,时区和波斯历中的现在yyyy/MM/dd - HH:mm:ssAsia/Tehran是:(1391/06/30 - 10:01:15),格鲁吉亚历和 UTC 中的现在是(2012/09/20 - 05:01:15),那又如何你的建议是?单独的时间根本不重要,但日期,我对此一无所知(在 NodaTime 中),有没有办法在一个过程或方法中转换这两者?

4

2 回答 2

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

  2. 不,我们目前不支持波斯历。您可以提出功能请求,但恐怕我们更有可能对推出 1.0 感兴趣。

  3. 目前尚不清楚“特区”是什么意思-但听起来又一次,您需要波斯历才能真正发挥作用。如果 .NET 支持波斯日历,您可以将其解析为DateTime第一个,然后将其转换为 Noda Time 类型……很抱歉,我们目前不支持波斯日历,我能够通过包装类型支持 BCL 日历(就像我们所做的那样TimeZoneInfo),但恐怕不会很快实现。

于 2012-09-20T08:04:51.350 回答
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());
于 2015-02-16T04:17:27.000 回答