给定:
DateTime.UtcNow如何获取以ISO 8601-compliant格式表示相同值的字符串?
请注意,ISO 8601定义了许多类似的格式。我正在寻找的具体格式是:
yyyy-MM-ddTHH:mm:ssZ发布于 2008-09-22 14:00:17
给读者的提示:一些评论者已经指出了这个答案中的一些问题(特别是与第一个建议相关的问题)。有关更多信息,请参阅注释部分。
DateTime.UtcNow.ToString("yyyy-MM-ddTHH\\:mm\\:ss.fffffffzzz");使用custom date-time formatting,这将为您提供一个类似于
2008-09-22T13:57:31.2311892-04:00.
另一种方式是:
DateTime.UtcNow.ToString("o");它使用标准的"round-trip" style (ISO8601)为您提供
2008-09-22T14:01:54.9571247Z.
要获取指定的格式,您可以使用:
DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ssZ")发布于 2008-09-22 14:06:49
当"s“格式说明符被描述为可排序的日期/时间模式时,DateTime.UtcNow.ToString("s", System.Globalization.CultureInfo.InvariantCulture)应该会提供您正在寻找的内容;符合ISO8601。
EDIT:要根据OP的需要获得末尾的附加Z,请使用"o"而不是"s"。
发布于 2008-09-22 13:59:20
DateTime.UtcNow.ToString("s")返回类似2008-04-10T06:30:00的内容
UtcNow显然会返回一个UTC时间,所以这样做没有什么坏处:
string.Concat(DateTime.UtcNow.ToString("s"), "Z")https://stackoverflow.com/questions/114983
复制相似问题