Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中获取随机时区感知日期时间_Python_Datetime_Timezone_Pytz - Fatal编程技术网

在Python中获取随机时区感知日期时间

在Python中获取随机时区感知日期时间,python,datetime,timezone,pytz,Python,Datetime,Timezone,Pytz,我得到一个随机日期时间之间的两个日期时间与以下代码 start_date = datetime.datetime(2013, 1, 1, tzinfo=pytz.UTC).toordinal() end_date = datetime.datetime.now(tz=pytz.utc).toordinal() return datetime.date.fromordinal(random.randint(start_date, end_date)) 问题是它不知道时区 我已经尝试过使用上面代码

我得到一个随机日期时间之间的两个日期时间与以下代码

start_date = datetime.datetime(2013, 1, 1, tzinfo=pytz.UTC).toordinal()
end_date = datetime.datetime.now(tz=pytz.utc).toordinal()
return datetime.date.fromordinal(random.randint(start_date, end_date))
问题是它不知道时区


我已经尝试过使用上面代码中的
tzinfo=pytz.UTC
使其具有时区意识,但它不起作用。我想
datetime.date.fromordinal()
使它成为一种简单的日期时间格式。

如果在代码中使用
datetime.datetime
而不是
datetime.date
,那么
替换(tzinfo=pytz.utc)
对结果有效

要支持任意步骤(不仅仅是
1天
):

注意:如果
start
使用具有非固定utc偏移量的时区,则在末尾调用
tz.normalize()

参见以下答案:
#!/usr/bin/env python3
import random
from datetime import datetime, timedelta, timezone

step = timedelta(days=1)
start = datetime(2013, 1, 1, tzinfo=timezone.utc)
end = datetime.now(timezone.utc)
random_date = start + random.randrange((end - start) // step + 1) * step