【问题标题】:python datetime now without daylight savingspython datetime 现在没有夏令时
【发布时间】:2011-10-25 14:25:57
【问题描述】:

我迷失在 tzinfo 文档中。

我想为我的位置创建一个不包括夏令时调整的日期时间对象。

目前我很难破解它:

import time
import datetime
now=datetime.datetime.now()
if time.localtime().tm_isdst==1:
    now=now+datetime.timedelta(hours=-1)

什么是正确的方法?

【问题讨论】:

  • 您的解决方案对我来说似乎很合理,也很清楚。
  • 我不同意 - 目前我有一个日期时间对象,它被归类为夏令时,但实际上是一个小时前而不是现在。如果我开始与其他日期时间对象进行比较,这可能会造成混乱。我正在寻找一种方法来实例化一个 datetime 对象,该对象的 tzinfo 中没有夏令时,因此不需要幻数。

标签: python datetime


【解决方案1】:

如果您真的想通过消除 DST 的影响来创建“虚假”​​时间,您当前的解决方案将起作用。

但是,使用日期的最佳做法是在内部将所有日期表示为 UTC,并且只处理用户交互的时区差异。这样您就不必关心所有杂乱的细节。

要为您的程序添加对所有时区的支持,请考虑使用PyTZ

【讨论】:

  • +1 建议使用 UTC - 这确实是正确的方法。 UTC 是明确的,这是处理时间时必不可少的属性。
  • 我不想要一个虚假的时间,否则我不会问 - 感谢 PyTZ 的推荐
  • @meepmeep:也许你不再想要虚假时间了,因为人们已经建议你改用 UTC 时间...... ;)
猜你喜欢
  • 1970-01-01
  • 2021-12-24
  • 2016-01-28
  • 2018-08-07
  • 2011-02-22
  • 2015-04-09
  • 2012-03-20
  • 2012-06-06
相关资源
最近更新 更多