python生成指定时间段内的随机时间

该博客介绍了两种方法在Python中生成随机时间戳和日期。method1利用datetime模块生成随机的datetime对象,并转换为字符串。method2通过time模块和random模块结合,生成随机时间戳。这两个方法可用于模拟或测试需要随机时间数据的场景。

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

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

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值