DateTimeFormatInfo.InvariantInfo vs CultureInfo.InvariantCulture

Bin*_*ony 7 .net c# optimization datetime

我试图解析DateTime,从客户端输入接受一个确切的格式.

哪一个更好

bool success = DateTime.TryParseExact(value, "dd-MMM-yyyy",
   DateTimeFormatInfo.InvariantInfo, DateTimeStyles.None, out dateTime);
Run Code Online (Sandbox Code Playgroud)

要么

bool success = DateTime.TryParseExact(value, "dd-MMM-yyyy", 
    CultureInfo.InvariantCulture, DateTimeStyles.None, out dateTime);
Run Code Online (Sandbox Code Playgroud)

当然,此代码位于一个常见的静态方法中,该方法在需要解析日期的任何地方调用.

adr*_*nks 8

如果你看一下签名DateTime.TryParseExact,它需要一个IFormatProvider作为第三个参数.双方DateTimeFormatInfo.InvariantInfoCultureInfo.InvariantCulture实现这个接口,所以你实际上是调用同样的方法DateTime在这两种情况下.

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

这两种方法的主要区别在于语法.使用你发现最清楚的那个.