在给定的范围内生成随机时间戳?
问题描述:
我试图做这样的事情:在给定的范围内生成随机时间戳?
start=input("select starting date, format example : Jan 01 00:00:00")
end=input("select ending date")
if start>end:
start,end=end,start
print(randomize_time(start,end))
输出:
>>> Aug 05 13:15:59
我一直在使用random.randint试过,但如果我选择像一个范围: 0时○○分00秒& & 01:00:00,随机化的唯一部分是小时,分和秒将被忽略(因为我在做random.randint(0,0))。
我该如何做到这一点?
在此先感谢所以!
答
您可以使用如下的内容:
from random import randrange
import time
start_timestamp = time.mktime(time.strptime('Jun 1 2010 01:33:00', '%b %d %Y %I:%M:%S'))
end_timestamp = time.mktime(time.strptime('Jun 1 2017 12:33:00', '%b %d %Y %I:%M:%S'))
def randomize_time(start_timestamp,end_timestamp):
return time.strftime('%b %d %Y %I:%M:%S', time.localtime(randrange(start_timestamp,end_timestamp)))
+1
我将时间转换为纪元并使用randrange生成开始和结束时间之间的值。将其转换为按格式排序 –
+0
将说明添加到答案中,而不是在评论中! –
您可以将输入转化为时间戳,并生成开始和结束之间的随机时间,然后再转换回日期时间 –
你可以粘贴方法机构randomize_time ?您可以将纪元时间作为参数传递,并获得一个随机时间戳并将其转换回日期字符串。 –
完美的时代物权。谢谢; – windir