2012-09-20 16 views
2

我用Noda Time處理DateTime問題,我看了幾乎所有的documents,但我有一些問題的日曆轉換成對方,轉換日曆對​​方使用NodaTime庫

  1. 首先,有多少日曆是否支持野田?

    由於CalendarSystem說,有僅4個日曆:

    一)CopticCalendar/B)的GregorianCalendar/C)伊斯蘭曆/ d)JulianCalendar

    因此,如何對其他日曆系統?

  2. 我使用Persian Calendar aka Jalali Calendar,那麼有什麼辦法可以在NodaTime中使用這個日曆嗎?以及如何將其轉換爲公曆?

  3. 我的最終目標是將時間(在特殊區域)和日期轉換爲UTC時區和格魯吉亞日曆。例如現在yyyy/MM/dd - HH:mm:ssAsia/Tehran時區和波斯歷是:(1391/06/30 - 10:01:15)和現在在格魯吉亞日曆和UTC是(2012/09/20 - 05:01 :15),那麼你的建議是什麼?時間本身並不重要,但日期,我不知道它(在NodaTime中),是否有任何方法在一個進程或方法中轉換這兩種方法?

+1

聯繫喬恩斯基特。 –

回答

3
  1. 是,目前這些都是我們支持的唯一的日曆系統。

  2. 不,我們目前對波斯日曆沒有任何支持。你可以提交一個功能請求,但我們更可能有興趣讓1.0開始,恐怕。

  3. 目前還不清楚你的意思是什麼「特殊區域」 - 但它聽起來又一次,你需要波斯日曆才能真正奏效。如果.NET支持波斯日曆,則可以先將它解析爲DateTime,然後將其轉換爲Noda時間類型......很抱歉,我們目前不支持波斯日曆,而且我會like能夠通過包裝類型支持BCL日曆(就像我們爲TimeZoneInfo所做的那樣),但恐怕不會很快。

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());