首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >日期格式yyyy-MM-ddTHH:mm:ssZ

日期格式yyyy-MM-ddTHH:mm:ssZ
EN

Stack Overflow用户
提问于 2009-11-13 18:31:22
回答 10查看 260.3K关注 0票数 115

我认为这应该很简单,但无法获得它:(。在此格式中,Z是时区。

T是长时间模式

我如何获取这种格式的日期,除非使用

代码语言:javascript
复制
DateTime dt = DateTime.Now;
Console.WriteLine(dt.ToString("yyyy-MM-ddTHH:mm:ssZ"));

在C#中

EN

回答 10

Stack Overflow用户

回答已采纳

发布于 2009-11-13 18:38:16

使用UTC

ISO 8601 (MSDN datetime formats)

代码语言:javascript
复制
Console.WriteLine(DateTime.UtcNow.ToString("s") + "Z");

2009-11-13T10:39:35Z

Z在那里是因为

如果时间是协调世界时,则在时间后面直接添加一个'Z‘,不带空格。“z”是零UTC偏移量的区域指示符。因此,“09:30UTC”表示为"09:30Z“或"0930Z”。"14:45:15 UTC“将是"14:45:15Z”或"144515Z“。

如果要包括偏移量

代码语言:javascript
复制
int hours = TimeZoneInfo.Local.BaseUtcOffset.Hours;
string offset = string.Format("{0}{1}",((hours >0)? "+" :""),hours.ToString("00"));
string isoformat = DateTime.Now.ToString("s") + offset;
Console.WriteLine(isoformat);

需要注意的两件事:时间过后需要+或-,但很明显+不会显示在正数上。根据维基百科的说法,偏移量可以是+hh格式或+hh:mm。我只坚持了几个小时。

据我所知,RFC1123 (HTTP date,"u“格式化程序)并不意味着提供时区偏移量。所有时间均为GMT/UTC。

票数 163
EN

Stack Overflow用户

发布于 2012-07-10 03:22:46

代码语言:javascript
复制
Console.WriteLine(DateTime.UtcNow.ToString("o"));  
Console.WriteLine(DateTime.Now.ToString("o"));

输出:

代码语言:javascript
复制
2012-07-09T19:22:09.1440844Z  
2012-07-09T12:22:09.1440844-07:00
票数 78
EN

Stack Overflow用户

发布于 2016-03-09 11:39:25

"o“格式对于DateTime和DateTimeOffset是不同的:(

代码语言:javascript
复制
DateTime.UtcNow.ToString("o") -> "2016-03-09T03:30:25.1263499Z"

DateTimeOffset.UtcNow.ToString("o") -> "2016-03-09T03:30:46.7775027+00:00"

我的最终答案是

代码语言:javascript
复制
DateTimeOffset.UtcDateTime.ToString("o")   //for DateTimeOffset type
DateTime.UtcNow.ToString("o")              //for DateTime type
票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1728404

复制
相关文章

相似问题

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