【发布时间】:2017-04-15 00:26:40
【问题描述】:
我在解析某些语言不是英语的日期字符串时遇到问题。 示例日期字符串为“8 avril 2016 vendredi”,英文为“8 april 2016 friday”。
我试过了,但没有运气。
DateTime dateTime;
DateTime.TryParse("8 avril 2016 vendredi", CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTime);
就我而言,日期字符串可以是任何语言,因此我无法在解析时指定文化。
我感谢您的帮助。谢谢。
【问题讨论】:
-
你试过
CultureInfo.CurrentCulture吗? -
很遗憾,CurrentCulture 不起作用。
-
有没有办法根据与日期相关的其他信息来获取文化?如果没有,我想知道是否有可能这样做,除了迭代每一个已知的文化并尝试解析它。
-
您的日期字符串来自哪里?我真的很难理解一种与文化无关的解决方案来解析特定文化的日期。您要么需要事先了解特定的文化,要么在解析之前以文化中性格式获取日期字符串。
-
在这种情况下,您应该能够使用 HTML
<meta>标签和/或 HTTP 标头(如Accept-Language),或者甚至可以创建查找表website => locale来确定日期字符串的文化。否则,请尝试使用一组预定义(最好是小的)众所周知的文化来解析每个日期,直到您找到至少一个能够成功解析日期的文化。无论如何,我不认为任何方法都是 100% 可靠的。
标签: c# datetime cultureinfo invariantculture