带有区域信息的时间戳

时间:2014-12-07 09:18:30

标签: c# .net datetime formatting timezone

我要求将带有区域信息的时间戳记作为

2014-12-05T08:37:25+0300

为实现这一点,我使用时间格式

DateTime.Now.ToString("yyyy-MM-dd'T'HH:mm:ssZ")

但是它给了我输出格式

2014-12-05T08:37:25Z

任何人都可以知道如何以这种格式获取时区信息

2014-12-05T08:37:25+0300

2 个答案:

答案 0 :(得分:1)

您可以使用此

 var now = DateTime.Now;
 Console.WriteLine(now.ToString("yyyy-MM-ddTHH:mm:ss")
                    + now.ToString("zzz").Replace(":", string.Empty));

删除":"来自zzz格式字符串不是.NET中的内置函数,删除它的最简单方法是替换它。

答案 1 :(得分:1)

  

但是它给了我这种格式的输出2014-12-05T08:37:25Z

这是正常的,因为Z不是standardcustom日期和时间格式。这就是为什么将这个字符复制到结果字符串不变的

我认为您的CurrentCulture代表UTC Offset +0300格式而不TimeSeparator,您可以直接使用The "K" custom format specifier,因为DateTime.Now返回{{1} }}作为Local喜欢;

DateTimeKind

结果可能是;

DateTime.Now.ToString("yyyy-MM-dd'T'HH:mm:ssK");