如何将 C# datetimeOffset 转换为指定格式

Posted

技术标签:

【中文标题】如何将 C# datetimeOffset 转换为指定格式【英文标题】:How to Convert C# datetimeOffset to specified format 【发布时间】:2018-03-27 07:37:05 【问题描述】:

我需要将 datetimeoffset 格式转换为以下格式。

在 TimeOffset 而不是 Dot 中,我需要在时间偏移之前使用冒号。

DateTimeOffset PassDate = DateTimeOffset.Now;
  var x = PassDate.ToString("o");
 Console.WriteLine(PassDate.ToString("o"));

在下面的屏幕截图中,我得到了 Dot - 在 offset 之前。而不是 Dot 需要冒号。

当前 O/p:2018-03-20T00:00:00.00-05:00 预期 O/p:2018-03-20T00:00:00:00-5:00

格式:

2018-03-20T00:00:00.00-05:00  to 2018-03-20T00:00:00:00-5:00

【问题讨论】:

-05-5 也是一个要求,还是一个错字? @Nyerguds 是 utc 时间到 cst 时间转换 -5:00 .yes 需要删除 0。 【参考方案1】:
DateTimeOffset PassDate = DateTimeOffset.Now;
var dateFormat = "yyyy-MM-ddTHH:mm:ss:ffK";
var x = PassDate.ToString(dateFormat);
Console.WriteLine(x);

Kzzz 修饰符可以互换

【讨论】:

【参考方案2】:
DateTimeOffset PassDate = DateTimeOffset.Now;       
string format = "yyyy-MM-ddTHH:mm:ss:ffzzz";
Console.WriteLine(PassDate.ToString(format,CultureInfo.InvariantCulture));

【讨论】:

【参考方案3】:
   DateTimeOffset PassDate = DateTimeOffset.Now;
   var x = PassDate.ToString("yyyy-MM-dd'T'HH:mm:ssK");
   Console.WriteLine(x);

输出2018-03-27T10:46:22+03:00

【讨论】:

【参考方案4】:

单击here 获取有关日期时间格式的更多信息,这可能会有所帮助。

【讨论】:

没有链接...并且通常不鼓励仅链接的答案。 我已经更新了链接,感谢您指点@Nyerguds,所有的描述都已经出现在链接页面上。 单击here 以获取有关仅链接答案的更多信息,这可能会有所帮助。 @Ahire_Sayali “一般不鼓励”实际上是指“被版主删除”。

以上是关于如何将 C# datetimeOffset 转换为指定格式的主要内容,如果未能解决你的问题,请参考以下文章

如何将 UTC DateTimeOffset 转换为使用系统时区的 DateTime

将 SQL Server DATETIMEOFFSET 转换为 mySQL DateTime

如何将 DateTimeOffset ToString("o") 偏移量设置为 00 [关闭]

Datetime 隐式转换为 Datetimeoffset 会导致不正确的偏移量?

模棱两可的 DateTimeOffset 示例

如何将服务器时间转换为本地时间