method1
import datetime,random
def randomtimes(start, end, n, frmt="%Y-%m-%d %H:%M:%S"):
stime = datetime.datetime.strptime(start, frmt)
etime = datetime.datetime.strptime(end, frmt)
time_datetime=[random.random() * (etime - stime) + stime for _ in range(n)]
time_str=[t.strftime(frmt) for t in time_datetime]
return time_str
randomtimes('2020-11-01 07:00:00','2020-11-01 09:00:00',10)
method2
import random
import time
from datetime import datetime
def strTimeProp(start, end, prop, frmt):
stime = time.mktime(time.strptime(start, frmt))
etime = time.mktime(time.strptime(end, frmt))
ptime = stime + prop * (etime - stime)
return int(ptime)
def randomTimestamp(start, end, frmt='%Y-%m-%d %H:%M:%S'):
return strTimeProp(start, end, random.random(), frmt)
def randomDate(start, end, frmt='%Y-%m-%d %H:%M:%S'):
return time.strftime(frmt, time.localtime(strTimeProp(start, end, random.random(), frmt)))
def randomTimestampList(start, end, n, frmt='%Y-%m-%d %H:%M:%S'):
return [randomTimestamp(start, end, frmt) for _ in range(n)]
def randomDateList(start, end, n, frmt='%Y-%m-%d %H:%M:%S'):
return [randomDate(start, end, frmt) for _ in range(n)]
start = '2018-06-02 12:12:12'
end = '2018-11-01 00:00:00'
lenth = 10
print(randomTimestamp(start, end))
print(randomDate(start,end))
print(randomTimestampList(start, end, lenth))
print(randomDateList(start, end, lenth))
注:原博客里方法1返回的是datetime对象,我进一步转换成了时间字符串;原博客的方法2在python3里运行会报错xrange,我这里改成了range