- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试解析日期时间,并从客户端输入中接受一种确切的格式。
哪个更好
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/
根据 MSDN,静态属性 DateTimeFormatInfo.InvariantInfo “获取与文化无关(不变)的默认只读 DateTimeFormatInfo 对象”。 然而,长日期模式是“dd
我的 C# 应用程序中有以下代码。 DateTimeFormatInfo.CurrentInfo.DayNames ReSharper 7.1.1 强调了 DateTimeFormatInfo.Cur
我是 Powershell 的新手,实际上是所有 Windows 开发环境的新手。 有了这个功能: [System.Globalization.DateTimeFormatInfo]::Current
这是我的简化代码: DateTimeFormatInfo dfi = DateTimeFormatInfo.CurrentInfo; var firstReference = dfi.FirstDay
我正在寻找类似于 MonthDayPattern 的东西在 Java 中。 我已经尝试过 DateFormatSimbols、SimpleDateFormat、DateFormat 等 .Net 为每
我得到了以下文化列表,我想用它们各自的语言获取它们的日期名称 CultureInfo[] newCultures = {new CultureInfo("de-DE"),
我有以下代码: var thursday = new CultureInfo("es-ES").DateTimeFormat.AbbreviatedDayNames[4]; 如预期的那样返回“ju.”
如何更改 DateTimeFormatInfo.CurrentInfo AbbreviatedDayNames 集合。我想使用我的,例如 Tues 而不是 Tue。当我使用 ToString("ddd
我正在尝试解析日期时间,并从客户端输入中接受一种确切的格式。 哪个更好 bool success = DateTime.TryParseExact(value, "dd-MMM-yyyy", D
是否有 DateTimeFormatInfo 格式模式可以将星期几转换为两个字符?例如星期二变成你,星期三变成我们。格式字符串需要符合日期格式的 DateTimeFormatInfo。 添加: 也许我
我使用此代码将我的文化更改为 .Net3.5 中的波斯文化: if (CultureInfo.CurrentCulture.ToString() == "fa-IR") {
为什么这段代码会抛出异常? var dateTime = "2012-03-21_15.12"; var format = new DateTimeFormatInfo() { FullDate
我正在我当前的项目中做一些全局化工作,我遇到了一个奇怪的行为。我在 Windows 7 上运行,只安装了美国英语,我的应用程序在 .NET 3.5 上运行。 给定以下代码段: var culture
我正在重构一些单元测试,发现一些解析策略依赖于 DateTime.TryParseExact 和 sbyte.TryPase,它们本身依赖于 NumberFormatInfo.CurrentInfo
我有一个 jQuery UI 日期选择器,我打算将其与 ASP.NET MVC 中的文本框一起使用。文本框中的日期显示是通过 CultureInfo 本地化的,当然应该由 jquery 识别以在日期选
在澳大利亚,一位客户一直在输入 “1/5” 作为 5 月第一天的快捷方式。我们刚刚从 Windows Server 2008 迁移到 Windows Server 2012。 在 LinqPad 中使
我使用 System.Globalization 如下: CultureInfo calture = new CultureInfo(MyCultureInfoGoesHere); DateTimeF
在 Windows 应用商店应用程序的 .NET API 中 DateTimeFormatInfo 不包含以下属性日期分隔符和时间分隔符。原因可能是两者都允许在完整 API 中进行设置。但如果我需要获
我想从日期时间获取Python中的yearWeek。我已经使用了 IsoCalender()[1],但它返回的星期与我使用 DateTimeFormatInfo.InvariantInfo.Calen
我是一名优秀的程序员,十分优秀!