【发布时间】:2018-09-12 13:59:16
【问题描述】:
我从数据库中获得了日期和时间(UTC 时间),我需要转换为 cst 时区。我尝试了以下代码,但它没有转换日期和时间。
DateTimeOffset returnTime = TimeZoneInfo.ConvertTime(time, timeZone);
输入
time = {3/11/2018 3:24:19 AM}
timeZone = {(UTC-06:00) Central Time (US & Canada)}
夏令时已启用
预期输出
returnTime = {3/10/2018 10:24:19 PM}
实际输出
returnTime = {3/11/2018 03:24:19 AM}
请帮忙解决这个问题。
【问题讨论】:
-
请注意
DateTime实例在某些时区没有夏令时组件,您需要手动调整。如果 DB 值已经是 UTC 格式,请尝试添加TimeZoneInfo.Local。 -
您确定需要这样做吗?如果可以的话,最好将 UTC 日期时间返回给用户应用程序,并允许它显示在用户的本地时区中。
-
输入日期时间是什么
.Kind?绝对是UTC? -
@TetsuyaYamamoto 时间是 DateTime 变量,我已经将 Offset 值传递给它。
-
@pmcilreavy 在这里我需要获取日期表单 returnTime 值以进行日期比较,这就是原因。
标签: c# asp.net-mvc datetime timezone datetimeoffset