将DateTime解析为通用时间C#
本文关键字:时间 DateTime | 更新日期: 2023-09-27 18:24:28
我有一个xml,它可以以格式(7/23/2013 4:00pm)返回时间。我的问题是:我如何向DateTime.ParseExact解释我在"am"还是在"pm"?我有这段代码,但它给我返回了一个异常(字符串无法解析)
我已经放置了一个示例字符串(7/23/2013 4:00pm),其中我用空链"替换了"pm"。
string pattern = "MM/dd/yyyy H:mm 'UTC' zzz";
DateTime time = DateTime.ParseExact(sb.ToString(), pattern, CultureInfo.InvariantCulture,
DateTimeStyles.AssumeUniversal |
DateTimeStyles.AdjustToUniversal);
非常感谢:)
您可以传递一个数组来覆盖各种格式。我将以下内容用于各种时间输入。
var formats = new[]
{
"M/dd/yyyy hh:mm tt",
"M/dd/yyyy hh:mmtt",
"M/dd/yyyy h:mm tt",
"M/dd/yyyy h:mmtt",
"M/dd/yyyy hhtt",
"M/dd/yyyy htt",
"M/dd/yyyy h tt",
"M/dd/yyyy hh tt"
};
var date = "7/23/2013 4:00pm";
DateTime time = DateTime.ParseExact(date, formats, CultureInfo.InvariantCulture,
DateTimeStyles.AssumeUniversal |
DateTimeStyles.AdjustToUniversal);
H
在您的模式中期望24样式中的时间。您需要tt
(如前面的答案所述),并且您的模式中必须有一个小的h
:
string pattern = "MM/dd/yyyy h:mm 'UTC' tt";
您需要tt
格式:
string pattern = "MM/dd/yyyy h:mm 'UTC' tt";
DateTime time = DateTime.ParseExact(sb.ToString(), pattern, CultureInfo.InvariantCulture,
DateTimeStyles.AssumeUniversal |
DateTimeStyles.AdjustToUniversal);