在 Python 中获取随机时区感知日期时间
Posted
技术标签:
【中文标题】在 Python 中获取随机时区感知日期时间【英文标题】:Get random timezone aware datetime in Python 【发布时间】:2015-08-21 08:44:07 【问题描述】:我使用以下代码在两个日期时间之间获得一个随机日期时间
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()
使它成为一种幼稚的日期时间格式。
【问题讨论】:
看到这个答案:***.com/questions/12626045/… 【参考方案1】:如果您在代码中使用datetime.datetime
而不是datetime.date
,则.replace(tzinfo=pytz.utc)
会处理结果。
支持任意步骤(不仅仅是1 day
):
#!/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
注意:如果start
使用具有非固定UTC 偏移量的时区,则在最后调用tz.normalize()
。
【讨论】:
以上是关于在 Python 中获取随机时区感知日期时间的主要内容,如果未能解决你的问题,请参考以下文章
Python - 给定一个时区感知的日期时间对象,我如何获得一个时区朴素的 UTC 日期时间对象?