我正在尝试解析日期时间,并从客户端输入中接受一种确切的格式。
哪个更好
bool success = DateTime.TryParseExact(value, "dd-MMM-yyyy",
DateTimeFormatInfo.InvariantInfo, DateTimeStyles.None, out dateTime);
或
bool success = DateTime.TryParseExact(value, "dd-MMM-yyyy",
CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTime);
当然,此代码位于一个公共(public)静态方法中,在需要解析日期的任何地方调用该方法。
最佳答案
如果您查看 DateTime.TryParseExact
的签名,它需要 IFormatProvider作为第三个参数。 DateTimeFormatInfo.InvariantInfo
和 CultureInfo.InvariantCulture
都实现了这个接口(interface),所以在这两种情况下,您实际上是在 DateTime
上调用相同的方法。
在内部,如果您使用 CultureInfo.InvariantCulture
,它的 DateTimeFormat调用属性以获取 DateTimeFormatInfo
实例。如果您使用 DateTimeFormatInfo.InvariantInfo
,则会直接使用它。 DateTimeFormatInfo
调用将稍微更快,因为它必须执行更少的指令,但这将是微不足道的,以至于在(几乎)所有情况下都没有区别。
这两种方法的主要区别在于语法。使用您认为最清楚的任何一个。
关于c# - DateTimeFormatInfo.InvariantInfo 与 CultureInfo.InvariantCulture,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1536162/