c# - DateTimeFormatInfo.InvariantInfo 与 CultureInfo.InvariantCulture

标签 c# .net optimization datetime

我正在尝试解析日期时间,并从客户端输入中接受一种确切的格式。

哪个更好

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.InvariantInfoCultureInfo.InvariantCulture 都实现了这个接口(interface),所以在这两种情况下,您实际上是在 DateTime 上调用相同的方法。

在内部,如果您使用 CultureInfo.InvariantCulture,它的 DateTimeFormat调用属性以获取 DateTimeFormatInfo 实例。如果您使用 DateTimeFormatInfo.InvariantInfo,则会直接使用它。 DateTimeFormatInfo 调用将稍微更快,因为它必须执行更少的指令,但这将是微不足道的,以至于在(几乎)所有情况下都没有区别。

这两种方法的主要区别在于语法。使用您认为最清楚的任何一个。

关于c# - DateTimeFormatInfo.InvariantInfo 与 CultureInfo.InvariantCulture,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1536162/

相关文章:

c# - 文本 block 和标签 wpf 上的文本选择

c# - 自定义编写的二叉树是否也应该有一个接口(interface)?

C - 完全复制数据结构与部分复制数据结构的速度

c# - 为 SOAP 网络服务传递 WSSE Usernametoken 的正确方式

c# - 在 autofac 中注册为 .InstancePerRequest() 的依赖项是否始终在异步延续中可用?

c# - 为什么当我对行进行更改时 DataRowState 显示已添加而不是已修改?

我可以通过更好的数组操作来优化此代码吗?

C# 在单词之间使用 BAR 格式化列表项

.net - .Net事件有关集合更新

java - 减少 Java 垃圾收集时间的关键因素或良好实践有哪些?