我正在编写一个简单的脚本,其中包含几行代码:
if (datetime.datetime.hour == 12):
测试这些的最简单方法是什么?每次我想测试它时将系统时间更改为不同的时间有点烦人,是否有更简单的方法让Python认为它是一个不同的时间?
答案 0 :(得分:2)
创建一个日期时间对象now
并使用它:
import datetime, pytz
testing = False # set to True/False
if testing:
now = datetime.datetime(2011, 1, 1, 12, 23, 34, tzinfo=pytz.utc)
# testing with any time
else:
now = datetime.datetime.now(pytz.utc)
# normal usage with current time
if (now.hour == 12):
...
编辑:您还可以使用可选参数启动脚本(选中optparse):如果它填写在YYYYMMDDHHMMSS表单中,您可以解析它:
if optDate:
now = datetime.datetime.strptime(optDate, '%Y%m%d%H%M%S').replace(tzinfo=pytz.utc)
else:
now = datetime.datetime.now(pytz.utc)
如果需要,请在此处应用您自己的时区。