C# 将DateTime转换为ToString()的特定时区

C# 将DateTime转换为ToString()的特定时区,c#,date,datetime,timezone,format,C#,Date,Datetime,Timezone,Format,在将DateTime值写入文本文件时,我必须确保使用的时区始终为UTC+01:00。格式为yyyy-MM-ddTHH:MM:sszzz,其中zzz部分始终等于+01:00。这意味着,如果DateTime值不是UTC+01:00,则需要在写入输出之前进行转换 最好的方法是什么?来自: 使用DateTime值,“zzz”自定义格式说明符表示本地操作系统时区与UTC的有符号偏移量,以小时和分钟为单位。它不反映实例的System.DateTime.Kind属性的值。因此,不建议将“zzz”格式说明符用于

在将
DateTime
值写入文本文件时,我必须确保使用的时区始终为UTC+01:00。格式为
yyyy-MM-ddTHH:MM:sszzz
,其中
zzz
部分始终等于
+01:00
。这意味着,如果DateTime值不是UTC+01:00,则需要在写入输出之前进行转换

最好的方法是什么?

来自:

使用
DateTime
值,“zzz”自定义格式说明符表示本地操作系统时区与UTC的有符号偏移量,以小时和分钟为单位。它不反映实例的
System.DateTime.Kind
属性的值。因此,不建议将“zzz”格式说明符用于
DateTime

相反,可以使用
DateTimeOffset
值(其中“zzz”执行您认为应该执行的操作),或者如果继续使用
DateTime
值,则使用

例如,在我的计算机(位于美国太平洋时区)上:

  • 在第1行,即使时间是UTC时间,偏移量也不正确地显示本地时间
  • 在第2行,
    K
    说明符选择UTC种类,并在结果中正确地给出一个
    Z
  • 在第3行,零偏移由
    zzz
    说明符正确地传递
相关:

来自:

使用
DateTime
值,“zzz”自定义格式说明符表示本地操作系统时区与UTC的有符号偏移量,以小时和分钟为单位。它不反映实例的
System.DateTime.Kind
属性的值。因此,不建议将“zzz”格式说明符用于
DateTime

相反,可以使用
DateTimeOffset
值(其中“zzz”执行您认为应该执行的操作),或者如果继续使用
DateTime
值,则使用

例如,在我的计算机(位于美国太平洋时区)上:

  • 在第1行,即使时间是UTC时间,偏移量也不正确地显示本地时间
  • 在第2行,
    K
    说明符选择UTC种类,并在结果中正确地给出一个
    Z
  • 在第3行,零偏移由
    zzz
    说明符正确地传递
相关:

使用:

DateTime.UtcNow.ToString("yyyy-MM-ddTHH:mm:sszzz") 
将导致错误。 请尝试以下方法:

DateTime.**Now**.ToString("yyyy-MM-ddTHH:mm:sszzz") 
使用:

将导致错误。 请尝试以下方法:

DateTime.**Now**.ToString("yyyy-MM-ddTHH:mm:sszzz") 
您对所讨论的
DateTime
了解多少?如果你不知道它的偏移量,你就不能在一个特定的偏移量上表示这个瞬间……你对所讨论的
DateTime
了解多少?如果你不知道它的偏移量,你就不能在一个特定的偏移量上表示这个瞬间。。。