我正在尝试解析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.InvariantInfo
和CultureInfo.InvariantCulture
都实现了此接口(interface),因此在两种情况下,您实际上都在DateTime
上调用了相同的方法。
在内部,如果使用CultureInfo.InvariantCulture
,则调用其DateTimeFormat属性以获取DateTimeFormatInfo
实例。如果使用DateTimeFormatInfo.InvariantInfo
,则直接使用。 DateTimeFormatInfo
调用会更快一些,因为它只需要执行较少的指令,但这将是微不足道的,以至于在几乎所有情况下都没有区别。
两种方法之间的主要区别在于语法。使用最清晰的那个。
关于c# - DateTimeFormatInfo.InvariantInfo与CultureInfo.InvariantCulture,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/1536162/