gpt4 book ai didi

python - 在python中生成随机时间戳列表

转载 作者:行者123 更新时间:2023-12-03 23:13:24 24 4
gpt4 key购买 nike

我正在尝试生成 24 小时时间戳的随机列表。我可以使用下面的代码在设定范围内生成一个日期和时间样本。我希望生成多个样本(例如 10 个样本)

此外,日期部分对我来说不是优先事项。如果我可以放弃它并只生成随机的 24 小时时间戳,那就太好了。

我发现的大多数线程只考虑生成随机日期。我能找到任何与时间有关的东西。

import random
import time
from datetime import datetime

def randomDate(start, end):
frmt = '%d-%m-%Y %H:%M:%S'

stime = time.mktime(time.strptime(start, frmt))
etime = time.mktime(time.strptime(end, frmt))

ptime = stime + random.random() * (etime - stime)
dt = datetime.fromtimestamp(time.mktime(time.localtime(ptime)))
return dt

random_datetime = randomDate("20-01-2018 13:30:00", "23-01-2018 04:50:34")

print(random_datetime)

输出:
2018-01-21 03:33:55

最佳答案

整点datetime图书馆:datetime , timedelta等对象的行为尽可能像数字,因此您可以对它们进行算术运算。

因此,要生成一天内的均匀分布,只需取从 0.0 到 1.0 的均匀分布,然后乘以一天:1

td = random.random() * datetime.timedelta(days=1)

要在某个特定日期生成统一的随机时间,只需将其添加到当天的午夜:
dt = datetime.datetime(2018, 5, 1) + random.random() * datetime.timedelta(days=1)

要在两个时间戳之间生成随机时间戳:
dt = random.random() * (end - start) + start

如果你想要其中的 10 个:
[random.random() * (end - start) + start for _ in range(10)]

这里的所有都是它的。远离 time 中的所有其他时间格式模块;仅当您需要与 C 库和文件系统数据等内容兼容时才需要它们。只需使用 datetime首先:
def randomtimes(stime, etime, n):
frmt = '%d-%m-%Y %H:%M:%S'
stime = datetime.datetime.strptime(start, frmt)
etime = datetime.datetime.strptime(end, frmt)
td = etime - stime
return [random.random() * td + stime for _ in range(n)]

1. 但是,请记住,如果您处理的是本地时间而不是 UTC 时间,由于夏令时,有些日子实际上是 23 或 25 小时。一个 timedelta不明白。

关于python - 在python中生成随机时间戳列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50165501/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com