2011-07-29 31 views
7

客戶端通過我們的應用程序從我們的服務器上下載文件後,應用程序會在服務器上以yyyy/mm/dd HH:mm:ss的形式發送日期字符串ParseExactDateTime.ParseExpress泰國/佛教時代的問題

經過很多困惑之後,我在一些日誌中注意到客戶端系統上的日期是19/7/2554。事實證明,這是一個有效的時間,如在泰國,Windows默認爲佛教時代的時間系統,這是2554年。

我的解析確切是用一種不變的文化,我懷疑可能是問題,但我認爲這種文化提到了你試圖解析的格式?

異常消息我得到的是:字符串未被識別爲有效DateTime因爲一週的某一天是不正確的

+0

你的格式似乎不包括一週中的某一天。你能給出一個你想要解析的字符串和解析的代碼的例子嗎? –

+0

確實是你指定一個格式列表? – V4Vendetta

+0

我的壞人啊,我搞砸了。結果發現還有一段代碼正在運行,我甚至都不知道。只用來自日誌文件的異常消息進行調試相當困難。原來,這是一個DateTime.Parse錯誤,而不是一個parseexact。我能夠通過將我的個人電腦的區域改爲泰國並確切地看到它正在死亡的位置來複制這個問題。 –

回答

1

CultureInfo的還包含日曆信息。如果TryParseExact方法有權訪問正確的日曆信息,那麼它將能夠正確解析日期。

http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.calendar.aspx

如果更換InvariantCulture的CultureInfo的與泰國的CultureInfo然後將用於該區域性的默認日曆。

或者,您可以使用不需要CultureInfo的TryParse方法的重載。在這種情況下使用的文化將取決於用戶在Windows中的區域設置。