0

我的 .NET 程序中有一个 DateTime,我需要使用特定的时区偏移值进行打印(例如,总是 +01:00)。输出应包含带时区的完整日期时间。它必须与系统时区设置无关。我怎么能做到这一点?

示例:我有一个时间戳,例如 12-03-2016T12:30:34+03:00,我需要输出为预定义的 TZ +1 计算的时间戳:12-03-2016T10:30:34+01:00

4

1 回答 1

0

找到了一些方法。

首先, DateTime 没有存储时区。相反,它有标志是UTC还是Local(不知道Local TZ shift是什么)。所以:第一件事是从UTC中的任何字符串时间戳中获取初始时间解析。

一旦它存储在 DateTime 对象中(使用 Kind=UTC),您必须将其转换为您希望输出的时区。我发现这里的示例很有用:datetime to string with time zone

注意:如果您需要转换伦敦夏令时,您必须知道 NET 中正确的时区名称,这样才能正确。请参阅.NET 中 UTC 和 GMT 标准时间之间的差异

于 2016-09-09T09:42:08.223 回答