【问题标题】:Getting the date and time from epoch taking in Daylight Saving into consideration考虑夏令时从纪元获取日期和时间
【发布时间】:2012-09-08 23:05:21
【问题描述】:

我目前正在开发一个 c# 应用程序,并且正在使用一个纪元时间戳并将其转换回正常的日期和时间。这几乎是有效的,除了目前它返回的时间落后 1 小时,因为它没有考虑夏令时。如何确定用户是否处于夏令时的时区并根据需要更正时间。

感谢您提供的任何帮助。

【问题讨论】:

    标签: c# epoch


    【解决方案1】:

    您尚未指定如何从纪元时间戳转换为 DateTime,但纪元时间戳是自 1970-01-01 00:00:00 UTC 以来经过的秒数,因此我假设您有世界标准时间DateTime。您可以使用以下代码将其转换为考虑夏令时的本地时间戳:

    var date = DateTime.UtcNow; // Should be created from epoch time stamp.
    var localDate = date.ToLocalTime();
    

    DateTimeKind 不是 Local,这一点很重要。如果不是这样,您可以自己修改:

    var date = DateTime.Now; // Should be created from epoch time stamp.
    date = DateTime.SpecifyKind(date, DateTimeKind.Utc);
    var localDate = date.ToLocalTime();
    

    在 Windows 上,转换基于执行代码的当前用户的时区和夏令时设置。

    【讨论】:

      猜你喜欢
      • 2018-02-04
      • 2021-11-08
      • 2013-09-18
      • 1970-01-01
      • 2019-09-05
      • 2014-03-02
      • 2016-02-13
      • 2011-08-14
      • 2019-10-17
      相关资源
      最近更新 更多