为什么DateTime.TryParseExact()为这些输入字符串返回不同的时区?

Ant*_*ton 2 c# datetime datetimeoffset

我有一个最简单的方法,将字符串解析为DateTime 但返回类型是DateTimeOffset?.

我期待输出

2011-01-11 00:00:00 +01:00
2011-10-11 00:00:00 +01:00
Run Code Online (Sandbox Code Playgroud)

但事实确实如此

2011-01-11 00:00:00 +01:00
2011-10-11 00:00:00 +02:00
Run Code Online (Sandbox Code Playgroud)

为什么我会这样做?我的测试程序如下.

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine(Parse("20110111").ToString());
        Console.WriteLine(Parse("20111011").ToString());
        Console.ReadLine();
    }

    public static DateTimeOffset? Parse(string date)
    {
        DateTime parsedDate;
        if (DateTime.TryParseExact(date, "yyyyMMdd", CultureInfo.InvariantCulture, DateTimeStyles.None, out parsedDate))
        {
            return parsedDate;
        }

        return null;
    }
}
Run Code Online (Sandbox Code Playgroud)

Hab*_*bib 9

它返回TimeZone当前的机器,一小时的差异是由于节省了一天.哪些在10月份没有生效,但它们是在1月份.