首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >给定一个DateTime对象,如何获取字符串格式的ISO8601日期?

给定一个DateTime对象,如何获取字符串格式的ISO8601日期?
EN

Stack Overflow用户
提问于 2008-09-22 13:56:09
回答 18查看 713.1K关注 0票数 940

给定:

代码语言:javascript
运行
复制
DateTime.UtcNow

如何获取以ISO 8601-compliant格式表示相同值的字符串?

请注意,ISO 8601定义了许多类似的格式。我正在寻找的具体格式是:

代码语言:javascript
运行
复制
yyyy-MM-ddTHH:mm:ssZ
EN

回答 18

Stack Overflow用户

发布于 2008-09-22 14:00:17

给读者的提示:一些评论者已经指出了这个答案中的一些问题(特别是与第一个建议相关的问题)。有关更多信息,请参阅注释部分。

代码语言:javascript
运行
复制
DateTime.UtcNow.ToString("yyyy-MM-ddTHH\\:mm\\:ss.fffffffzzz");

使用custom date-time formatting,这将为您提供一个类似于

2008-09-22T13:57:31.2311892-04:00.

另一种方式是:

代码语言:javascript
运行
复制
DateTime.UtcNow.ToString("o");

它使用标准的"round-trip" style (ISO8601)为您提供

2008-09-22T14:01:54.9571247Z.

要获取指定的格式,您可以使用:

代码语言:javascript
运行
复制
DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:ssZ")
票数 919
EN

Stack Overflow用户

发布于 2008-09-22 14:06:49

当"s“格式说明符被描述为可排序的日期/时间模式时,DateTime.UtcNow.ToString("s", System.Globalization.CultureInfo.InvariantCulture)应该会提供您正在寻找的内容;符合ISO8601。

EDIT:要根据OP的需要获得末尾的附加Z,请使用"o"而不是"s"

票数 463
EN

Stack Overflow用户

发布于 2008-09-22 13:59:20

代码语言:javascript
运行
复制
DateTime.UtcNow.ToString("s")

返回类似2008-04-10T06:30:00的内容

UtcNow显然会返回一个UTC时间,所以这样做没有什么坏处:

代码语言:javascript
运行
复制
string.Concat(DateTime.UtcNow.ToString("s"), "Z")
票数 104
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/114983

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档