我正在尝试解析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);

当然,此代码位于一个通用的静态方法内,该方法在需要解析日期的任何地方都被调用。

最佳答案

如果您查看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/

10-11 12:24