运维开发网

c# – 日期格式yyyy-MM-ddTHH:mm:ssZ

运维开发网 https://www.qedev.com 2020-05-29 10:19 出处:网络 作者:运维开发网整理
我认为这应该很简单,但无法得到它:(. 在这种格式中,Z是时区.  T是长时间模式  除了使用之外,我怎么能得到这种格式的日期 DateTime dt = DateTime.Now; Console.WriteLine(dt.ToString("yyyy-MM-ddTHH:mm:ssZ")); 在C#中 使用UTC ISO 8601(MSDN datetime formats) Console.W
我认为这应该很简单,但无法得到它:(.

在这种格式中,Z是时区.

 T是长时间模式

 除了使用之外,我怎么能得到这种格式的日期

DateTime dt = DateTime.Now;
Console.WriteLine(dt.ToString("yyyy-MM-ddTHH:mm:ssZ"));

在C#中

使用UTC

ISO 8601(MSDN datetime formats)

Console.WriteLine(DateTime.UtcNow.ToString("s") + "Z");

2009-11-13T10:39:35Z

Z就在那里因为

If the time is in UTC, add a ‘Z’

directly after the time without a

space. ‘Z’ is the zone designator for

the zero UTC offset. “09:30 UTC” is

therefore represented as “09:30Z” or

“0930Z”. “14:45:15 UTC” would be

“14:45:15Z” or “144515Z”.

如果要包含偏移量

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日期,“你”格式化程序)并不意味着给出时区偏移.所有时间都是GMT / UTC.

0

精彩评论

暂无评论...
验证码 换一张
取 消