C# 使用夏令时将CST转换为EST

C# 使用夏令时将CST转换为EST,c#,timezone-offset,C#,Timezone Offset,我正在尝试将CST中的日期时间转换为EST,同时调整夏令时。我的本地机器在东部标准时间。 在msdn上找到,但用户 建议使用DateTimeOffset调整DST,但我不知道如何将其合并到我的代码中。谢谢你的帮助。 到目前为止,这是我所拥有的有效方法,但我不认为这是在调整夏时制 DateTime cstTime, utcTime; DateTime estTime; string cstZoneId, estZoneId; Time

我正在尝试将CST中的日期时间转换为EST,同时调整夏令时。我的本地机器在东部标准时间。 在msdn上找到,但用户 建议使用DateTimeOffset调整DST,但我不知道如何将其合并到我的代码中。谢谢你的帮助。 到目前为止,这是我所拥有的有效方法,但我不认为这是在调整夏时制

        DateTime cstTime, utcTime;
        DateTime estTime;
        string cstZoneId, estZoneId;
        TimeZoneInfo cstZone, estZone;

        estZoneId = "Eastern Standard Time";
        cstZoneId = "Central Standard Time";
        estZone = TimeZoneInfo.FindSystemTimeZoneById(estZoneId);
        cstZone = TimeZoneInfo.FindSystemTimeZoneById(cstZoneId);

        //define d as CST
        cstTime = d;
        try
        {
            //convert CST to UTC
            utcTime = TimeZoneInfo.ConvertTimeToUtc(cstTime, cstZone);
            //convert UTC to EST
            estTime = TimeZoneInfo.ConvertTimeFromUtc(utcTime, estZone);
            return estTime;
        }
        catch (Exception e)
        {

            Console.WriteLine(e.Message);
        }

从你的问题中不清楚问题是什么;您没有描述代码产生的结果,也没有描述预期的结果

除了每年的两个时段(每个时段持续一小时)外,中部和东部时间总是相隔一小时。例外情况是进入和退出夏令时的转换。美国东部时间3月第二个星期日凌晨2点,东部时区的时钟移到美国东部时间凌晨3点。在接下来的60分钟里,东部时间比中部时间早两个小时。然后,在CST凌晨2点,中央时区的时钟移到CDT凌晨3点,差回到1小时

同样,在11月的第一个星期日,美国东部时间凌晨2点,时钟设置为美国东部时间凌晨1点。在接下来的60分钟里,中心区仍然是夏令时,所以两个地方的时间是相同的。一小时后,中心区的时钟向后移动一小时,恢复正常时差


由于您的时间永远不会在这两个时段中出现,您可以放心地假设中部时间总是比东部时间早一小时。

如果您在东部时间或东部时间,那么您就不必担心夏令时。看见此外,除转换期间的1小时窗口外,中东部时间差为1小时。EST比CST晚一个小时,EDT比CDT晚一个小时。谢谢。上面说“东部标准时间不是指“现在纽约市的任何时间”,而是指“东部时间不适用于夏令时”。所以我为什么不必担心呢???是b/c EST和CST在夏令时变化时总是同步的??我的意思是什么“别担心"美国东部时间不包括美国东部时间。但当然,东部时间可以是美国东部时间或美国东部时间,所以你可能需要担心。在美国,时间在当地时间凌晨2点移动,所以每年春天东部时区在美国东部时间有一个小时,而中部时区在美国东部时间,而秋季有一个小时东部时间与东部时间共存。在秋季时间,纽约和芝加哥的civil time是相等的;在春季,它们会被删除两个小时。但是如果你将自己限制在工作时间内,那么纽约和芝加哥总是有一个小时的不同。在研究了一下框架的
TimeZoneInfo
类之后,我发现它使用一个名为“东部标准时间”,其
支持SDayLightSavingTime
属性为true。如果超过“东部夏时制”",你会得到一个例外。这与适当的民事时间术语不一致,但它反映了普遍存在的误解,即Eric Lippert的博客正在试图纠正。感谢你的见解……出于我的目的,我处理的是一整天的时间,而不仅仅是工作时间。因此,我认为我仍然有这个问题。有什么问题吗有什么办法调整我的代码以适应夏令时?