C# 带区域信息的时间戳

C# 带区域信息的时间戳,c#,.net,datetime,formatting,timezone,C#,.net,Datetime,Formatting,Timezone,我有一个要求,以获得时间戳与区域信息如下 2014-12-05T08:37:25+0300 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 有人知道如何以这种格式获取时区信息吗 2014-12-05T08:37:25Z 2014-12

我有一个要求,以获得时间戳与区域信息如下

2014-12-05T08:37:25+0300
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
有人知道如何以这种格式获取时区信息吗

2014-12-05T08:37:25Z
2014-12-05T08:37:25+0300
你可以用这个

 var now = DateTime.Now;
 Console.WriteLine(now.ToString("yyyy-MM-ddTHH:mm:ss")
                    + now.ToString("zzz").Replace(":", string.Empty));
从zzz格式字符串中删除“:”不是.NET中的内置函数,删除它的最简单方法是替换它

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

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

我认为您的
CurrentCulture
+0300
格式表示,没有,您可以直接使用自
DateTime。现在
DateTimeKind
的形式返回
Local

DateTime.Now.ToString("yyyy-MM-dd'T'HH:mm:ssK");
结果可能是