如何通过调用DateTime.ParseExact同时接受两位数和四位数的年份
本文关键字:两位 四位 DateTime 调用 何通过 ParseExact | 更新日期: 2023-09-27 18:29:42
我使用自定义格式字符串调用.NET的DateTime.ParseExact
,其行数为"MM/dd/yyyy h:mmt"
。此字符串处理四位数的年份,但不处理两位数的年份。有没有一种方法可以在一个ParseExact调用中处理这两种情况?我试过"MM/dd/yy h:mmt"
,它只处理两位数的大小写。
您可以为ParseExact
的第二个重载参数传递一个格式字符串数组,这将包括2年和4年的变体。
DateTime.ParseExact(myDateTime,
new []{"MM/dd/yy h:mmt", "MM/dd/yyyy h:mmt"},
CultureInfo.InvariantCulture,
DateTimeStyles.None)
调用接受一系列可能格式的DateTime.ParseExact
重载:
DateTime dt =
DateTime.ParseExact(s, new[] { "MM/dd/yyyy h:mmt", "MM/dd/yy h:mmt" }, null, 0);
对于第三个参数,如果您的日期字符串是针对用户当前区域性本地化的,则传递null
或DateTimeFormatInfo.CurrentInfo
;如果日期字符串始终为美国格式,则传递DateTimeFormatInfo.InvariantInfo
。
对于第四个参数,0相当于DateTimeStyles.None
。
请参阅MSDN Library文档。
使用重载的DateTime.ParseExact,它采用一个格式的字符串数组。
MSDN:
string[] formats= {"MM/dd/yyyy h:mmt", "MM/dd/yy h:mmt"};
var dateTime = DateTime.ParseExact(dateString, formats,
new CultureInfo("en-US"),
DateTimeStyles.None);
您可以始终使用适当的重载:
var date = DateTime.ParseExact(dateString,
new[] { "MM/dd/yyy h:mmt", "MM/dd/yy h:mmt" },
new CultureInfo("en-US"),
DateTimeStyles.None);