1

当我做:

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.

知道如何以这种方式解析它吗?

4

2 回答 2

1

那是您所在时区的等效时间。如果您想以通用(“祖鲁”)时间存储(或显示)时间,请使用

dt1.ToUniversalTime.ToString();

要在解析字符串时执行此操作,请使用DateTimeStyles.AdjustToUniversal

DateTime dt1 = DateTime.ParseExact(strDate, 
                                   "o", 
                                   CultureInfo.InvariantCulture, 
                                   DateTimeStyles.AdjustToUniversal);
于 2013-03-05T03:21:31.653 回答
0

试试这个,它“不会考虑你的相对时区”:

DateTime dt2 = DateTime.ParseExact(strDate.TrimEnd(new char [] { 'Z' }), 
                                   "yyyy-MM-ddTHH:mm:ss.fffffff",
                                   CultureInfo.InvariantCulture, 
                                   DateTimeStyles.AssumeLocal);

其他选择

于 2013-03-05T03:34:40.523 回答