在给定的范围内生成随机时间戳?

问题描述:

我试图做这样的事情:在给定的范围内生成随机时间戳?

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))。

我该如何做到这一点?

在此先感谢所以!

+0

您可以将输入转化为时间戳,并生成开始和结束之间的随机时间,然后再转换回日期时间 –

+0

你可以粘贴方法机构randomize_time ?您可以将纪元时间作为参数传递,并获得一个随机时间戳并将其转换回日期字符串。 –

+0

完美的时代物权。谢谢; – windir

您可以使用如下的内容:

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

将说明添加到答案中,而不是在评论中! –