我知道这个问题已被提出了许多不同的方式,而且我已经全部查看了这些问题,但这些解决方案似乎都不适用于我。所以,我希望也许你们可以快点给我。
输入字符串为:“2000-01-01T12:00:000Z”。我需要获取该输入字符串并将其转换为DateTime,以便它可以存储在数据库中。
我一直在使用ParseExact,但我一直收到无法识别的日期字符串异常。我哪里错了?
inValue.LatestDepartTime = "2000-01-01T12:00:000Z";
DateTime _latestDepartTime = DateTime.ParseExact(inValue.LatestDepartTime, "yyyy-MM-dd HH:mm:ss.fff", CultureInfo.InvariantCulture);
答案 0 :(得分:6)
您的格式字符串需要完全匹配输入。
包括文字T
和Z
字符。
答案 1 :(得分:5)
您需要在格式字符串中加入\\T
和\\Z
,以匹配文字T
和Z
。
答案 2 :(得分:4)
使用yyyy-MM-dd'T'HH:mm:ss.fff'Z'
代码是:
public DateTime convertIsoToDateTime (string iso)
{
return DateTime.ParseExact(iso, "yyyy-MM-dd'T'HH:mm:ss.fff'Z'", CultureInfo.InvariantCulture);
}
答案 3 :(得分:3)
您未在模式中指定T
。
那就是说,你可能想看一下XmlConvert
类,它提供了转换这种格式的方法。
答案 4 :(得分:1)
你需要在T和Z周围加上单引号:
DateTime parsedDateTime;
DateTime.TryParseExact(obj, "yyyy-MM-dd'T'HH:mm:ss'Z'", null, System.Globalization.DateTimeStyles.None, out parsedDateTime);
return parsedDateTime;