当我这样做时:
string strDate = "2013-03-03T22:58:43.0422158Z";
DateTime dt1 = DateTime.ParseExact(strDate, "o", CultureInfo.InvariantCulture);
DateTime dt2 = DateTime.ParseExact(strDate, "yyyy-MM-ddTHH:mm:ss.fffffffZ", CultureInfo.InvariantCulture);
dt1和dt2都变为{3/3/2013 2:58:43 PM}
。我需要它们是字符串中的时间,即3/3/2013 10:58:43 PM
。
知道如何解析它吗?
答案 0 :(得分:1)
这是您所在时区的等效时间 。如果您想在Universal(“Zulu”)时间内存储(或显示)时间,请使用
dt1.ToUniversalTime.ToString();
在解析字符串时执行此操作,请使用DateTimeStyles.AdjustToUniversal
DateTime dt1 = DateTime.ParseExact(strDate,
"o",
CultureInfo.InvariantCulture,
DateTimeStyles.AdjustToUniversal);
答案 1 :(得分:0)
试试这个,它“不会考虑你的相对时区”:
DateTime dt2 = DateTime.ParseExact(strDate.TrimEnd(new char [] { 'Z' }),
"yyyy-MM-ddTHH:mm:ss.fffffff",
CultureInfo.InvariantCulture,
DateTimeStyles.AssumeLocal);