gpt4 book ai didi

c# - C# 中的太平洋时间与夏令时无关

转载 作者:行者123 更新时间:2023-11-30 22:58:42 25 4
gpt4 key购买 nike

我需要始终用太平洋时间标记我的数据库,无论是八月还是二月。太平洋时间是一年中任何时候实际的美国西海岸时间:

  • 在夏令时期间 PT = PDT(太平洋夏令时)= UTC - 7
  • 在非夏令时期间 PT = PST(太平洋标准时间 0 = UTC - 8

我正在使用 C# 并执行以下操作:

TimeZoneInfo pacificZone = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time");
CreatedDate = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, pacificZone);

这会自动考虑夏令时,还是我需要通过这样做来考虑这一点:

TimeZoneInfo pacificZone = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time");
CreatedDate = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, pacificZone);
if (!TimeZoneInfo.Local.IsDaylightSavingTime(CreatedDate))
{
CreatedDate = CreatedDate.AddHours(-1);
}

最佳答案

Is my first or 2nd code snippet the correct one?

第一 block 是正确的。


测试代码

var utcDateDuringDaylightSavingsTime = new DateTime(2018, 7, 1, 15, 30, 30, DateTimeKind.Utc);
TimeZoneInfo pacificZone = TimeZoneInfo.FindSystemTimeZoneById("Pacific Standard Time");
var localDateDuringDaylightSavingsTime = TimeZoneInfo.ConvertTimeFromUtc(utcDateDuringDaylightSavingsTime, pacificZone);
var localDateNotDuringDaylightSavingsTime = TimeZoneInfo.ConvertTimeFromUtc(utcDateDuringDaylightSavingsTime.AddMonths(5), pacificZone);

Console.WriteLine(utcDateDuringDaylightSavingsTime.ToString("o") + "\t\tUTC");
Console.WriteLine(localDateDuringDaylightSavingsTime.ToString("o") + "\t\t Local during daylight saving");
Console.WriteLine(localDateNotDuringDaylightSavingsTime.ToString("o") + "\t\t Local not during daylight saving");

输出

2018-07-01T15:30:30.0000000Z        UTC
2018-07-01T08:30:30.0000000 Local during daylight saving
2018-12-01T07:30:30.0000000 Local not during daylight saving

关于c# - C# 中的太平洋时间与夏令时无关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52841526/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com