区域不可知Char.IsSeparator(ch)?

时间:2009-10-12 09:49:51

标签: c# .net localization

我有一个解析包含日期(和/或时间)的字符串的函数,例如“ 2009-12-10 ”。我从短日期模式中获得了年 - 月 - 日的订单。在浏览字符串时,我使用 Char.IsSeparator(ch)来确定数字何时结束。

现在,在韩语的情况下, Char.IsSeparator(ch)似乎在分隔符上返回false。有没有办法知道数字之间的字符是否是分隔符,无论区域设置如何?

(我还解析更多免费包含“* 20 May 200 * 9”之类的字符串,因此在分隔符上执行 Char.IsAlphaNum()将无法正常工作,因为我不知道基本内容)

示例输入:“20.10.2009”“2009-05-20”“2009年5月20日”“20.05.2009 10:00 AM”“2009年1月1日”(在新加坡,其在美国的D / M / Y)它是M / D / Y“)”Tisdag,1 Januari 1962“(所有字符串本地化)

输出将尽可能地填充DateTime实例(尽管我们使用自己的类型)。

韩文似乎在前面有几个字符,并且作为分隔符,它看起来像符号根据字符串中的位置而不同。

2 个答案:

答案 0 :(得分:2)

如果您使用当前的短格式选择格式,您或许也可以通过DateTimeFormatInfo.CurrentInfo.DateSeparator选择分隔符。

答案 1 :(得分:0)

有什么理由需要手动解析字符串吗?

如果您使用了内置的日期/时间解析方法 - ParseParseExactTryParseTryParseExact - 那么您可以传递所需的特定文化格式化信息,让框架担心分隔符等。