Python获取时间段内的随机时间和时间戳(列表等)

本文介绍两种使用Python生成指定日期范围内的随机时间戳和日期的方法。第一种方法利用datetime和random模块,适用于Python3。第二种方法结合time、datetime和random模块,提供更灵活的时间格式选项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文转自:https://blog.csdn.net/Chihwei_Hsu/article/details/83589309

获取两个时间点间的随机时间&时间戳
方案一

# python2 不兼容,python3正常
import datetime,random
def randomtimes(start, end, n, frmt="%Y-%m-%d"):
    stime = datetime.datetime.strptime(start, frmt)
    etime = datetime.datetime.strptime(end, frmt)
    return [random.random() * (etime - stime) + stime for _ in range(n)]

randomtimes('2018-06-01','2018-11-01',10)

方案二

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 xrange(n)]

def randomDateList(start, end, n, frmt='%Y-%m-%d %H:%M:%S'):
    return [randomDate(start, end, frmt) for _ in xrange(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))

 结果:

————————————————
版权声明:本文为CSDN博主「米Py」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Chihwei_Hsu/article/details/83589309