日期时间转换 增加 5 小时

Usa*_*lvi 3 c# datetime date

我在 c# 中的数据表中插入记录,其中日期时间的转换给 em 额外的 5 小时。

DateTime.ParseExact("2020-02-19T15:28:36.207Z", "yyyy-MM-ddTHH:mm:ss.fffZ", CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)

这给了我 8:28 pm 而不是 3:28 pm 这是来自 c# 的响应

{2/19/2020 8:28:36 PM}
    Date: {2/19/2020 12:00:00 AM}
    Day: 19
    DayOfWeek: Wednesday
    DayOfYear: 50
    Hour: 20
    Kind: Local
    Millisecond: 207
    Minute: 28
    Month: 2
    Second: 36
    Ticks: 637177409162070000
    TimeOfDay: {20:28:36.2070000}
    Year: 2020```

Run Code Online (Sandbox Code Playgroud)

Jon*_*eet 6

它正在转换为当地时间。如果指定DateTimeStyles.AdjustToUniversal为最后一个参数,你会用一个值结束KindUniversal和下午3:28的时间:

var result = DateTime.ParseExact(
    "2020-02-19T15:28:36.207Z",
    "yyyy-MM-ddTHH:mm:ss.fffZ",
    CultureInfo.InvariantCulture,
    DateTimeStyles.AdjustToUniversal);
Run Code Online (Sandbox Code Playgroud)

注意,枚举值的名称有点不幸在这里,因为你没有真正调整-你说你想要的调整为本地时间。从文档

如果输入字符串通过时区说明符或 AssumeUniversal 表示 UTC 时间,则不会发生转换。