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

How to get DateTime.Now() in YYYY-MM-DDThh:mm:ssTZD format using C#

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
datetime to string with time zone

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

Complete date plus hours, minutes and seconds:
YYYY-MM-DDThh:mm:ssTZD where TZD = time zone designator (Z or +hh:mm or -hh:mm) (eg 1997-07-16T19:20:30+01:00)

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

1
DateTime.Now.ToString("yyyy-MM-ddThh:mm:ssTZD");

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

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


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

1
DateTime.Now.ToString("yyyy-MM-ddTHH:mm:sszzz")

结果:

1
2011-08-09T23:49:58+02:00

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

1
DateTime.Now.ToString("yyyy-MM-ddTHH':'mm':'sszzz")

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


使用zzz而不是TZD

例:

1
DateTime.Now.ToString("yyyy-MM-ddThh:mm:sszzz");

响应:

1
2011-08-09T11:50:00:02+02:00


试试这个:

1
DateTime.Now.ToString("yyyy-MM-ddThh:mm:sszzz");

zzz是时区偏移量。