C# 区域不可知字符IsSeparator(ch)?

C# 区域不可知字符IsSeparator(ch)?,c#,.net,localization,C#,.net,Localization,我有一个函数可以解析包含日期(和/或时间)的字符串,例如“2009-12-10”。我从短日期模式中获得年-月-日的顺序。在遍历字符串时,我使用Char.IsSeparator(ch)计算数字何时结束 然而,在韩语中,Char.IsSeparator(ch)在分隔符字符上返回false。有没有办法知道数字之间的字符是否是分隔符,而不考虑区域设置 (我还分析更自由的字符串,其中包含“*20 May 200*9”之类的内容,因此在分隔符上执行Char.IsAlphaNum()也不会起作用,因为我基本上

我有一个函数可以解析包含日期(和/或时间)的字符串,例如“2009-12-10”。我从短日期模式中获得年-月-日的顺序。在遍历字符串时,我使用Char.IsSeparator(ch)计算数字何时结束

然而,在韩语中,Char.IsSeparator(ch)在分隔符字符上返回false。有没有办法知道数字之间的字符是否是分隔符,而不考虑区域设置

(我还分析更自由的字符串,其中包含“*20 May 200*9”之类的内容,因此在分隔符上执行Char.IsAlphaNum()也不会起作用,因为我基本上不知道内容)

输入示例:“2009年10月20日”“2009年5月20日”“2009年5月20日”“2009年5月20日上午10:00”“2009年1月1日”(在新加坡,其D/M/Y在美国为M/D/Y”)“1962年1月1日,蒂斯达克”(所有字符串均本地化)

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


韩语似乎在时间前面有两个字符,作为分隔符,根据字符串中的位置,符号似乎不同。

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

有什么原因需要手动解析字符串吗


如果您使用内置的日期/时间解析方法-,或者-,那么您可以传递所需的特定于区域性的格式信息,让框架担心分隔符等问题。

难道您不能采取相反的方法,为每个比较使用正确的区域吗?您能提供一些输入和预期输出的示例吗?我认为我现在可以自由地使用这个格式化模块,并且完全理解它的功能,但是当我这么做的时候,主要是为了移植一个非托管的C代码C#。特别是因为格式化需要与以前完全一样(这个例程被其他人使用等等).你说得对。我只是扔掉了这些东西,然后用标准的.NET方法重写了它。谢谢你告诉我:)当我查看调试器时,它似乎是“-”,但是查看完整的日期有韩文字符。