2012-12-16 45 views

回答

7

是 - 任何時候DateTime轉換爲字符串指定明確的文化,它會使用當前區域性的日曆系統。然而,DateTime組件本身仍然反映了公曆。

你會看到2555,如果你使用:

int thaiYear = new ThaiBuddhistCalendar().GetYear(DateTime.Now); 

基本上,如果你想以編程方式獲取特定文化的最新信息,你需要使用一個System.Globalization.Calendar。格式化日期時,請確保爲要使用的日曆指定正確的文化。

+1

但爲什麼它有兩個不同的值,'2555&2012'?它們不應該是2555還是相同? – Kaf

+2

@Kaf:不,因爲正如我在回答的第二句話中所說的,「DateTime」本身總是按照公曆日曆報告值。 'DateTime'值不會「知道」要解析哪個日曆,因此它總是假定爲公曆。 –

+1

@Kaf轉換爲字符串使用當前日曆,但像「Year」這樣的屬性不會。 – CodesInChaos