c# - c# 将 UTC 时间转换为 Central,包括 DateTime 对象中的时区
问题描述
我正在将 UTC 时间从我的本地服务器时间转换为中央标准时间。我在德国的服务器上运行这个。
转换时间和日期有效,但是当我将库转换为字符串时,它的时区偏移量错误。
当我需要它为2019-05-11T14:44:09-06: 00 时,它显示为2019-05-11T14:44:09+02: 00
TimeZoneInfo CRtimezone = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, CRtimezone);
+02:00是德国的UTCoffset,我不想要,即使时间和日期在中部时间是正确的。
有没有办法在 DateTime 对象中传递或包含偏移量?
解决方案
有没有办法在 DateTime 对象中传递或包含偏移量?
不,DateTime
结构没有UTC偏移但有DateTimeOffset
。如果您真的想在代码中保留 UTC 偏移值,我建议您使用DateTimeOffset
而不是DateTime
.
由于它不保留 UTC 偏移值,因此当您获得它的文本(又名字符串)表示时,您仍然会获得德国服务器的偏移值(顺便包括、 和K
说明z
符)。方法返回一个实例,您可能想要表示的偏移值取决于您希望如何显示它。zz
zzz
TimeZoneInfo.ConvertTimeFromUtc
DateTime
一种选择可能是您可能想要连接DateTime 和值的可排序(“s”)格式说明符表示。TimeZoneInfo.BaseUtcOffset
TimeZoneInfo CRtimezone = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
$"{TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, CRtimezone).ToString("s")}{CRtimezone.BaseUtcOffset}".Dump();
推荐阅读
- sql - SQL EXCEPT 跨多个列
- java - 如何在读取最后一个值时再次从文本文件中读取整数
- c - 管道中父进程的wait()有什么问题
- c# - 为什么我的正则表达式没有转义这个反斜杠?
- sql - 如何从长达一年的时间表创建单独的航班条目?
- javascript - 是否可以在类中的 this.var 上设置 Object.defineProperty()
- python - 如何从 pytorch 类中的 pandas 列中读取图像
- regex - 如何在 Bash 中匹配符号?
- mysql - 将数据库附加到 Web 容器时,Docker 数据库连接被拒绝错误
- python - 验证 url 并编译 subreddits 的工作列表