2009-10-12 25 views
1

我有一個函數可以解析包含日期(和/或時間)的字符串,例如「2009-12-10」。我從短日期模式獲得年月日訂單。當通過字符串時,我使用Char.IsSeparator(ch)來確定數字何時結束。區域不可知論者Char.IsSeparator(ch)?

但是現在在韓國的情況下,它似乎Char.IsSeparator(CH)收益上的分隔符錯誤。有沒有辦法知道數字之間的字符是分隔符而不管區域設置?

(我也解析更自由包含像「* 5月20日200 * 9」這樣的分離Char.IsAlphaNum()將無法​​工作,如我不知道的內容基本的東西串)

輸入示例:「20.10.2009」「2009-05-20」「2009年5月20日」「20.05.2009 10:00 AM」「1/1/2009」(在新加坡其D/M/Y in美國它是M/D/Y「)」Tisdag,1月1日1962「(所有字符串本地化)

輸出將等於儘可能填充日期時間實例(儘管我們使用我們自己的類型)

韓國人似乎在時間前面有幾個字符,並且作爲分隔符,看起來符號根據字符串中的位置而不同。

+0

Couldn框架憂你採取相反的方法,並使用正確的區域進行比較嗎? – 2009-10-12 09:59:01

+0

你能提供一些輸入和預期輸出的例子嗎? – 2009-10-12 11:36:38

回答

0

你有什麼理由需要手動解析字符串嗎?

如果使用的是內置的日期/時間分析方法 - ParseParseExactTryParseTryParseExact - 那麼你可以傳遞所需的區域性特定格式信息,並讓有關分離等

+0

我認爲用免費的手和完全理解這個格式化模塊我現在可以做到這一點,但是當我這樣做時主要是移植一個非託管的C代碼C#。特別是由於格式需要與以前完全相同(此例程由其他人使用等)。 – 2009-10-12 10:15:24

+0

你說得對。我只是扔掉了東西,並使用標準的.NET方法重寫了它。感謝您向我展示光:) – 2009-10-13 07:39:07

2

如果您使用當前的短格式選取格式,您可能也可以通過DateTimeFormatInfo.CurrentInfo.DateSeparator拿起分隔符。

+0

當我看着調試器時,它看起來像是' - ',但是看完整日期還有韓文字符。 – 2009-10-12 10:20:53