钩针编织包装处理夏时制

时间:2019-03-28 18:35:23

标签: python cron

在下面,我注意到,如果我们使用croniter来获取夏令时的前一个日期和下一个日期之后的下一个日期,则会发生一些奇怪的事情。下面是我的完整代码,您可以复制/粘贴并运行它。

import pytz
from dateutil import parser
from croniter import croniter
from datetime import datetime

edt = pytz.timezone('America/New_York')
utc = pytz.utc
fmt = '%Y-%m-%d %H:%M:%S %Z%z'

date_utc = parser.parse('2019-03-12 01:05:00+00:00')
date_edt = date_utc.astimezone(edt)

# Get previous cron schedule date time.
prev_cron = croniter('5 21 * * 1-5', date_edt).get_prev(datetime)
# Get next cron schedule date time.
next_cron = croniter('5 21 * * 1-5', prev_cron).get_next(datetime)

print('date_utc\t', date_utc, date_utc.strftime('%Z'))
print('date_edt\t', date_edt, date_edt.strftime('%Z'))
print('prev cron\t', prev_cron, prev_cron.strftime('%Z'))
print('next cron\t', next_cron, next_cron.strftime('%Z'))

打印结果:

date_utc     2019-03-12 01:05:00+00:00 UTC
date_edt     2019-03-11 21:05:00-04:00 EDT
prev cron    2019-03-08 20:05:00-05:00 EST
next cron    2019-03-08 21:05:00-05:00 EST

我的问题是:prev_cron为什么显示20:05而不是21:05。如果我有cron作业,它将在当地时间21:05执行,那么为什么不在这里不这样做,我又如何实现呢?

0 个答案:

没有答案