Dej*_*jan 6 c# datetime parsing cultureinfo
我正在尝试解析包含毫秒的字符串,如下所示:
Run Code Online (Sandbox Code Playgroud)string s = "11.05.2010 15:03:08.7718687"; // culture: de-CH DateTime d = DateTime.Parse(s); // works
但是,例如在de-DE语言环境下,小数分隔符是逗号(不是点).所以这个例子变成了:
Run Code Online (Sandbox Code Playgroud)string s = "11.05.2010 15:03:08,7718687"; // culture: de-DE (note the comma) DateTime d = DateTime.Parse(s); // throws a FormatException
我很奇怪DateTime.Parse(s)应该抛出一个FormatException,因为它应该使用CultureInfo.CurrentCulture进行解析.即使将CurrentCulture明确地作为参数传递也无济于事.有没有人知道为什么这不起作用?不解析会考虑NumberFormatInfo.NumberDecimalSeparator吗?
DateTimeFormatInfo 适用于格式化/解析日期,而不是 NumberFormatInfo。DateTimeFormatInfo 未定义可由不同区域性重载的“秒/毫秒”分隔符。
标准日期和时间格式字符串均不显示毫秒(往返除外),无论如何,往返似乎都不区分文化。因此,您不应该遇到这种格式的字符串,除非您自己的代码正在生成它。如果您知道代码将生成该格式的日期,则可以提供一个自定义格式字符串,该字符串使用逗号作为秒和毫秒之间的分隔符。
归档时间: |
|
查看次数: |
4496 次 |
最近记录: |