2013-07-18 45 views
2

檢查下面的代碼片斷,的String.format()日期時間隨着阿拉伯培養

namespace TestDateConvertion 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      DateTime testValue = new DateTime(2013, 12, 15, 15, 33, 44); 

      CultureInfo culture = new CultureInfo("ar-SA"); 
      string stringValue = string.Format(culture, "{0:d} {0:HH:mm:ss}", testValue); 
      Console.WriteLine(stringValue); 
      Console.ReadLine(); 
     } 
    } 
} 

它給出的輸出作爲

22/02/35 15時33分44秒

我不明白這是可能的。什麼是35做的輸出那裏

+1

如果不檢查,我會猜測'ar-SA'文化與[hijri日曆]相關聯(http://en.wikipedia .org/wiki/Hijri_calendar),其中2013年的公曆12月與1435年的日期相對應(1435年開始於2013年公曆11月的第一天之一)。 –

+0

由於您設定的文化根據HijriCalendar格式化日期,因此您獲得了此輸出...輸出中的年份爲1435年。這是根據HijriCalendar – rags

+0

您的代碼會爲我引發異常。 '此日曆不支持指定的時間。它應該在04/30/1900 00:00:00(公曆日期)和11/16/2077 23:59:59(公曆日期)之間'是否適合你? –

回答

5

這是2015年12月13日在Hijri,35意味着1435在Hijri,默認日期格式爲沙特阿拉伯。

1

不是你一年的一部分嗎? 我試過string.Format(culture, "{0:dd MM yyyy} {0:HH:mm:ss}", testValue);,你會收到12 02 1435 15:33:44