2017-02-23 155 views
2

我試圖做這樣的事情:在給定的範圍內生成隨機時間戳?

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

回答

3

您可以使用如下的內容:

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

將說明添加到答案中,而不是在評論中! –