c# - 如何格式化 DateTimeOffset 使其时区偏移量中不包含冒号?

标签 c# .net datetime datetime-format datetimeoffset

我正在阅读这篇有关日期时间相关格式支持的 MSDocs 文章 https://learn.microsoft.com/en-us/dotnet/standard/datetime/system-text-json-support#support-for-the-iso-8601-12019-format

我试图将日期时间转换为这种格式的字符串时区部分不带冒号:

2021-01-01T14:30:10+0030

我想将此 datetimeoffset 转换为字符串。我使用这种格式:

yyyy-MM-ddTHH:mm:sszzz

但是 ToString("yyyy-MM-ddTHH:mm:sszzz") 方法的输出是:

2021-01-01T14:30:10+00:30

时区部分有冒号 (:) 符号。 我怎样才能将其转换为“2021-01-01T14:30:10+0030”? (时区部分不带冒号)

我可以格式化时区部分吗?

最佳答案

似乎不可能(至少在 .Net 6 中)为 DateTimeOffset 获取格式字符串来获得所需的表示形式。但是,您可以尝试组合两种格式:date(类型为DateTimeOffset)和整数Offset(类型为DateTimeOffset)输入TimeSpan)

string result = $"{date:yyyy-MM-ddTHH:mm:sszz}{date.Offset:mm}"; 

这里我们结合

  1. date:date:yyyy-MM-ddTHH:mm:sszz - date,偏移量最大小时
  2. date.Offset:mm - 偏移 分钟

关于c# - 如何格式化 DateTimeOffset 使其时区偏移量中不包含冒号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70274423/

相关文章:

sql - 为什么在Delphi XE7 64位和32位之间日期时间的处理方式不同?

python - 在 Python 中从 datetime.now() 中减去 SQL DATETIME

c# - 有没有比在开头使用 1=1 更好的动态构建 SQL WHERE 子句的方法?

c# - 如何以编程方式将 WPF Datagrid 绑定(bind)到自定义对象的 ObservableCollection?

c# - Wpf控件显示html代码

c# - 在 .NET C# 中截断整个单词的字符串

matlab - 在 Matlab 中将 datenum 转换为 datetime 的最快方法

c# - 您能否以编程方式查看 USB 设备在 Windows 中请求的安培数?

c# - Windows RT 如何逐行读取文本文件?

c# - HashSet 或 Distinct 以读取对象 List<> 中属性的不同值