我使用一个与"MM/dd/yyyy h:mmt"类似的自定义格式字符串调用.NET的DateTime.ParseExact。此字符串处理四位数的年份,而不是两位数的年份。有没有办法在单个ParseExact调用中同时处理这两种情况?我试过"MM/dd/yy h:mmt",它只处理两位数的情况。
发布于 2012-03-30 22:10:14
您可以为这个ParseExact重载上的第二个参数传递一个格式字符串数组-这将包括2年和4年的变体。
DateTime.ParseExact(myDateTime,
new []{"MM/dd/yy h:mmt", "MM/dd/yyyy h:mmt"},
CultureInfo.InvariantCulture,
DateTimeStyles.None)发布于 2012-03-30 22:11:25
调用接受可能格式数组的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 documentation。
发布于 2012-03-30 22:13:27
使用接受格式字符串数组的重载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);https://stackoverflow.com/questions/9944571
复制相似问题