回答
是 - 任何時候DateTime
轉換爲字符串指定明確的文化,它會使用當前區域性的日曆系統。然而,DateTime
組件本身仍然反映了公曆。
你會看到2555,如果你使用:
int thaiYear = new ThaiBuddhistCalendar().GetYear(DateTime.Now);
基本上,如果你想以編程方式獲取特定文化的最新信息,你需要使用一個System.Globalization.Calendar
。格式化日期時,請確保爲要使用的日曆指定正確的文化。
但爲什麼它有兩個不同的值,'2555&2012'?它們不應該是2555還是相同? – Kaf
@Kaf:不,因爲正如我在回答的第二句話中所說的,「DateTime」本身總是按照公曆日曆報告值。 'DateTime'值不會「知道」要解析哪個日曆,因此它總是假定爲公曆。 –
@Kaf轉換爲字符串使用當前日曆,但像「Year」這樣的屬性不會。 – CodesInChaos
泰國人有不同的日曆。
我引述:
There is a 543 years difference between the Buddhist calendar and the Gregorian calendar. Year 2012 in Europe is year 2555 in Thailand.
- 1. f:convertDateTime顯示錯誤年份
- 2. ajax calendarextender選擇年份2014年的錯誤轉移回2013年
- 3. Formatting DateTime.Now.ToUniversalTime()without string.Format()
- 4. 年份值錯誤地顯示爲0013
- 5. Datetime fromtimestamp返回錯誤的年份
- 6. Java - GregorianCalendar輸出錯誤的年份?
- 7. 日期選擇器月份和年份選定的錯誤
- 8. 日曆返回錯誤的年份和月份的Java
- 9. 1215年錯誤
- 10. 按年份分組按年份
- 11. 真實年份datediff(無年份)
- 12. Rails 3 +按年份排序的年份
- 13. Django年份存檔查看年份?
- 14. 我必須從輸入的月份/年份打印月份和年份到當前的月份和年份
- 15. 使用NSDateFormatter轉換獲得錯誤年份NSDate轉換爲NSString
- 16. timeIntervalSince1970轉換返回錯誤的年份在Swift 3
- 17. parsedatetime返回錯誤的年份日期發生早於當月
- 18. Ruby錯誤地解析了2位數年份
- 19. 日曆獲得年份返回錯誤結果
- 20. PHP的DateTime :: createFromFormat()返回錯誤的年份
- 21. 離子2日期時間顯示錯誤的年份
- 22. 參數錯誤(年份太大而無法統計:20 UTC)
- 23. Android DatePickerDialog年份
- 24. 更新年份?
- 25. 有月份和年份PHP
- 26. 結合年份和月份
- 27. 月份及年份過濾
- 28. 減去年份和月份
- 29. 按年份和月份
- 30. 只月份和年份
作爲一個側面說明:使用'DateTime.UtcNow',而不是'DateTime.Now.ToUniversalTime()'。它更快,更乾淨。 – CodesInChaos