时区偏移不正确

问题描述 投票:0回答:1

我想弄清楚时区问题。我位于挪威,这是gmt + 1,我正在尝试将UTC时间转换为当地时间。根据我的理解,这意味着当地时间应为+ 1小时。所以12:00 utc应该变成当地的13:00。出于某种原因,我一直在+2小时。

Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture("nb-NO");
var zone = System.TimeZoneInfo.Local;                           // Zone = {(UTC+01:00) Amsterdam, Berlin, Bern, Oslo, Roma, Wien}
DateTime time = DateTime.Parse("2019-04-01T00:00:00+00:00");    // time = {01.04.2019 02:00:00} Why is this not 01:00:00 when timzone = utc+1?
var offset = zone.GetUtcOffset(time);                           // Offset = {02:00:00}

DateTime timeWithoutUtc = DateTime.Parse("2019-04-01T00:00:00");
var t2 = timeWithoutUtc.ToLocalTime();                          // {01.04.2019 02:00:00}

DateTimeOffset timeOffsetWithUtc = DateTimeOffset.Parse("2019-04-01T00:00:00+00:00");
var t3 = timeOffsetWithUtc.ToLocalTime();                       // {01.04.2019 02:00:00 +02:00}

我确信这是非常基本的东西,但我似乎无法理解我哪里出错了。

c# timezone
1个回答
0
投票

我没有考虑在示例中的日期开始时夏令时开始。感谢sellotape指出它。

© www.soinside.com 2019 - 2024. All rights reserved.