将字符串格式“yyyy-MM-ddTHH:mm:ss.fffZ”转换为DateTime

时间:2012-02-05 19:57:08

标签: c# datetime

我知道这个问题已被提出了许多不同的方式,而且我已经全部查看了这些问题,但这些解决方案似乎都不适用于我。所以,我希望也许你们可以快点给我。

输入字符串为:“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);

5 个答案:

答案 0 :(得分:6)

您的格式字符串需要完全匹配输入。

包括文字TZ字符。

答案 1 :(得分:5)

您需要在格式字符串中加入\\T\\Z,以匹配文字TZ

答案 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;