相关疑难解决方法(0)

pytz奇怪的时区问题

>>> import pytz
>>> pytz.timezone('Asia/Hong_Kong')
<DstTzInfo 'Asia/Hong_Kong' LMT+7:37:00 STD>
Run Code Online (Sandbox Code Playgroud)

7小时37分钟的偏移量?这有点奇怪,有没有人遇到同样的问题?

事实上,我之间的行为有所不同

import pytz
from datetime import datetime
hk = pytz.timezone('Asia/Hong_Kong')

dt1 = datetime(2012,1,1,tzinfo=hk)
dt2 = hk.localize(datetime(2012,1,1))
if dt1 > dt2:
   print "Why?"
Run Code Online (Sandbox Code Playgroud)

python pytz

41
推荐指数
3
解决办法
5579
查看次数

`datetime.now(pytz_timezone)`什么时候失败?

delorean文档显示这种方式来获得在给定的时区当前时间 使用datetime:

from datetime import datetime
from pytz import timezone

EST = "US/Eastern"
UTC = "UTC"

d = datetime.utcnow()
utc = timezone(UTC)
est = timezone(EST)
d = utc.localize(d)
d = est.normalize(EST)
Run Code Online (Sandbox Code Playgroud)

并将其与基于delorian的代码进行比较:

from delorean import Delorean

EST = "US/Eastern"

d = Delorean(timezone=EST)
Run Code Online (Sandbox Code Playgroud)

我相信这个datetime例子应该写成:

from datetime import datetime
import pytz

eastern_timezone = pytz.timezone("US/Eastern")
d = datetime.now(eastern_timezone)
Run Code Online (Sandbox Code Playgroud)

这更简洁.

当最后一个代码示例失败而第一个代码示例继续工作时,是否有任何情况?


更新: 当前示例:

from datetime import datetime
import pytz

d = datetime.utcnow()
d = pytz.utc.localize(d)

est …
Run Code Online (Sandbox Code Playgroud)

python timezone datetime pytz delorian

11
推荐指数
1
解决办法
1827
查看次数

测试 datetime.datetime 是否采用夏令时 .dst() 函数不返回 pytz 时区的值

我正在尝试测试任意本地化日期时间对象是否处于夏令时。

这与许多人已经问过的问题类似。例如。(Python 中的夏令时

在这些板中,测试日期时间是否采用 DST 的方法是使用内置函数 .dst()。这被包装成 bool ,如下所示:

if bool(mydatetimeobject.dst()):
    print ("date is DST!")
Run Code Online (Sandbox Code Playgroud)

但是,每当我创建任意日期时间并传递 tztimezone 时,.dst() 函数都不会报告任何内容。就好像没有设置时区一样!

检查此代码片段以查看问题:

>>> from datetime import datetime
>>> import pytz
>>> localtime = pytz.timezone('US/Central')

>>> mydate = datetime(2004,3,1)  # day in standard time
>>> localtime.localize(mydate)
datetime.datetime(2004, 3, 1, 0, 0, tzinfo=<DstTzInfo 'US/Central' CST-1 day, 18:00:00 STD>)
>>> mydate.dst()

>>> mydate = datetime(2004,5,1)  #day in daylight time
>>> localtime.localize(mydate)
datetime.datetime(2004, 5, 1, 0, 0, tzinfo=<DstTzInfo 'US/Central' CDT-1 day, 19:00:00 DST>)
>>> …
Run Code Online (Sandbox Code Playgroud)

python datetime pytz

7
推荐指数
1
解决办法
8747
查看次数

更改小时和 NonExistentTimeError:2019-03-31 01:50:24.455000

这是我的代码

data = result["Document"]
df = pd.DataFrame(data)


df["Created"] = pd.to_datetime(df["Created"])

df["Created"] = pd.to_datetime(df["Created"],errors='coerce').dt.tz_localize('Europe/London').dt.tz_convert('Europe/Paris')
#print(df)hour
df['Created'] = df['Created'].dt.date

df["Barcode"] = df["Barcode"].astype(str)
fig, ax = plt.subplots()

myFmt = mdates.DateFormatter('%Y-%m-%d %H:%M')
ax.xaxis.set_major_formatter(myFmt)

df1 = df.groupby(["Created"])["Tag"].count().reset_index()
df2 = df[df["Tag"] == "DISPLAY"].groupby(["Created"])["Tag"].count().reset_index()
plt.plot(df2['Created'],df2['Tag'])
plt.plot(df1['Created'],df1['Tag'])
plt.gcf().autofmt_xdate()
plt.figure(figsize=(30,20))
plt.show()
Run Code Online (Sandbox Code Playgroud)

问题是我的 hpur 不存在:

 2019-03-31 01:50:24.455000
Run Code Online (Sandbox Code Playgroud)

随着时间的变化,这个时间日期在法国不存在。

这就是它崩溃的原因。

如何转换计数中的日期?

问候

python timezone

3
推荐指数
1
解决办法
2117
查看次数

标签 统计

python ×4

pytz ×3

datetime ×2

timezone ×2

delorian ×1