【发布时间】:2016-08-03 00:38:03
【问题描述】:
我正在尝试将我从客户那里获得的这个字符串转换为日期时间,以将其存储在我的数据库中。
我尝试了几种方法,但似乎没有任何效果。 我需要 UTC 时间的偏移量,所以我想我需要对 zz 做点什么。
这是有效的:
string test = "2008-06-11T16:11:20.0904778Z";
DateTime publishingTimeStamp = DateTime.ParseExact(test, "o", CultureInfo.InvariantCulture,
DateTimeStyles.None);
但客户的字符串略有不同,所以我尝试了这个:
string test = "2017-01-01T12:00:33:123456Z+02";
DateTime publishingTimeStamp = DateTime.ParseExact(test, "yyyy-MM-dd'T'HH:mm:ss:ffffffzz", System.Globalization.CultureInfo.InvariantCulture, DateTimeStyles.None);
不幸的是,它不起作用。如何转换确切的字符串“2016-01-01T10:00:55:123456Z+02”?甚至可能因为它在ffffff前面使用“:”
谢谢
【问题讨论】:
-
"...它不工作" 怎么样?你得到什么结果,你期望什么结果?你有错误吗?如果是,是哪一个?
-
为什么是
ParseExact?您可以使用简单的DateTime.Parse(test, out dt)。使用 ISO 字符串不需要文化、格式等。 -
不,那是my initial answer,但格式与该格式的偏差太大了@i486
-
你最后使用
Z+02。通常,UTC 偏移量不是Z,因为 Z 表示 UTC 或 +00。你确定偏移前有Z吗? -
确实,该日期格式无效@Wimmel这就是我删除答案的原因。 OP 的客户应使用标准格式的日期。