- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
正确值:
>>> pytz.timezone('Asia/Tehran').utcoffset(datetime(2013, 1, 1)).total_seconds()/3600.0
3.5
>>> pytz.timezone('Asia/Tehran').utcoffset(datetime(2013, 1, 1)).total_seconds()
12600.0
不正确的值:
>>> pytz.timezone('Asia/Tehran')._utcoffset.total_seconds()/3600.0
3.433333333333333
>>> pytz.timezone('Asia/Tehran')._utcoffset.total_seconds()
12360.0
我想知道 _utcoffset
属性是否在 utcoffset()
方法中使用,为什么该方法工作而属性错误。
无论如何看起来像一个错误。
如果将 Asia/Tehran
替换为 Iran
>>> print pytz.VERSION
2012c
操作系统:Linux Mint 15 (Olivia)
使用 Python 2.7
最佳答案
让我们看看这里发生了什么:
>>> tz = pytz.timezone('Asia/Tehran')
>>> tz
<DstTzInfo 'Asia/Tehran' LMT+3:26:00 STD>
这意味着时区以 LMT 表示- 这是太阳时间。这就是您看到 12360 的 utcoffset 的原因 - 这里没有错误,它只是使用不同的引用计算得出的。
现在如果你这样做:
>>> d = tz.localize(datetime(2013, 1, 1))
>>> d
datetime.datetime(2013, 1, 1, 0, 0, tzinfo=<DstTzInfo 'Asia/Tehran' IRST+3:30:00 STD>)
>>> d.utcoffset()
datetime.timedelta(0, 12600)
localize
方法导致表示切换到该日期和地点使用的正确时区,即 IRST,utcoffset 为 12600 秒。
这就是 utcoffset
method 的内容tzinfo 对象的作用 - 它本地化给定的 datetime 对象并返回它的 utcoffset。
同样,如果您目前这样做:
>>> d = datetime.now(tz)
>>> d
datetime.datetime(2013, 8, 15, 20, 46, 4, 705896, tzinfo=<DstTzInfo 'Asia/Tehran' IRDT+4:30:00 DST>)
>>> d.utcoffset()
datetime.timedelta(0, 16200)
您将获得以 IRDT 表示的日期时间,因为当前夏令时在该时区有效。
关于python - pytz:_utcoffset 对伊朗有错误的值(value),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18255024/
正确值: >>> pytz.timezone('Asia/Tehran').utcoffset(datetime(2013, 1, 1)).total_seconds()/3600.0 3.5 >>>
升级 matplotlib 后,我失去了绘制日期时间对象的能力。 错误如下: File "/opt/anaconda3/envs/py36/lib/python3.6/site-packages/
这是我正在尝试做的一个玩具示例: import pandas as pd import datetime import matplotlib matplotlib.use('agg') # noqa
我是一名优秀的程序员,十分优秀!