【问题标题】:What I need to save in data base in order to be able convert to UTC?我需要在数据库中保存什么才能转换为 UTC?
【发布时间】:2011-10-05 07:14:07
【问题描述】:

我的问题是:我有很多数据包含日期时间(在自己的本地时间),我需要将其转换为 UTC。看起来是这样的:

class Data
{
  int id; //Some id for database
  DateTime time; //Time in local time, i need to convert it to utc
}

//Converting:
1)Find this id in database and extract some info (which excatly?)
2)Convert time to UTC

我的问题是:我需要在数据库中保留哪种数据才能正确转换时间?

我的版本是:在本地时间和 utc 之间保持整数小时差,并通过将其添加到本地时间进行转换。但这是合适的解决方案吗?

【问题讨论】:

  • 您的应用程序实际上会跨多个时区运行吗?

标签: c# .net datetime timezone


【解决方案1】:

普遍接受的解决方案是始终存储 UTC 日期时间,然后在加载或显示给用户时将其转换为本地时间

【讨论】:

    【解决方案2】:

    保持整数差是不够的,因为这并不能区分夏令时 (DST) 和非 DST。

    最好的方法是保留一个时区。通用且得到很好支持的时区系统是Olson Tz

    它们是代表时区的大城市名称的引用。例如,太平洋时间将是 America\Los_Angeles。请注意,这包括基于存储日期的日光和非日光。因此,您无需知道何时开始使用日光 - 这已包含在 olson 时区中。

    也看here

    【讨论】:

      猜你喜欢
      • 2014-03-17
      • 1970-01-01
      • 2018-01-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多