如何使用C#以YYYY-MM-DDThh:mm:ssTZD格式获取DateTime.Now()

Uma*_*oon 23 c# datetime

可能重复:
datetime到字符串与时区

这是我想在站点地图中使用的W3C标准日期时间格式之一.此DateTime标准是:

完成日期加上小时,分钟和秒:YYYY-MM-DDThh:mm:ssTZD其中TZD =时区指示符(Z或+ hh:mm或-hh:mm)(例如1997-07-16T19:20:30 + 01 :00)

我使用以下代码以该格式获取当前DateTime:

DateTime.Now.ToString("yyyy-MM-ddThh:mm:ssTZD");
Run Code Online (Sandbox Code Playgroud)

但这给出了:2011-08-10T02:27:20TZD

显然,DateTime.Now无法识别参数中的"TZD".请帮忙.如何以这种格式获取当前的DateTime?

Guf*_*ffa 51

使用zzz格式说明符将时区偏移量设置为小时和分钟.您还希望使用HH格式说明符以24小时格式获取小时数.

DateTime.Now.ToString("yyyy-MM-ddTHH:mm:sszzz")
Run Code Online (Sandbox Code Playgroud)

结果:

2011-08-09T23:49:58+02:00
Run Code Online (Sandbox Code Playgroud)

某些文化设置使用句点而不是冒号作为时间,因此您可能希望使用文字冒号而不是时间分隔符:

DateTime.Now.ToString("yyyy-MM-ddTHH':'mm':'sszzz")
Run Code Online (Sandbox Code Playgroud)

自定义日期和时间格式字符串


gen*_*sis 10

使用zzz而不是TZD

例:

DateTime.Now.ToString("yyyy-MM-ddThh:mm:sszzz");
Run Code Online (Sandbox Code Playgroud)

响应:

2011-08-09T11:50:00:02+02:00
Run Code Online (Sandbox Code Playgroud)