使用python依次生成特定月份的随机日期

问题描述 投票:0回答:1

如何以这种特定格式(即从月的1号到该月的30号)以特定的格式生成特定月份的随机日期

2011-08-12T20:17:46.384Z

对此进行了尝试,但它以常规时间日期格式生成。该代码随机生成,但我需要从该月的1到30/31的顺序值

from datetime import datetime

d1 = datetime.strptime('1/1/2010 1:30 PM', '%m/%d/%Y %I:%M %p')
d2 = datetime.strptime('1/1/2011 4:50 AM', '%m/%d/%Y %I:%M %p')

print(random_date(d1, d2))
python python-3.x random python-datetime
1个回答
2
投票

也许您可以得到日期时间之间的秒数差异,然后使用random.randrange

from datetime import datetime, timedelta
import random

def random_date(d1, d2):
    delta = d2 - d1
    seconds = delta.total_seconds()
    n = random.randrange(seconds)
    return d1 + timedelta(seconds=n)

d1 = datetime.strptime('1/1/2010 1:30 PM', '%m/%d/%Y %I:%M %p')
d2 = datetime.strptime('1/1/2011 4:50 AM', '%m/%d/%Y %I:%M %p')

print(random_date(d1, d2).isoformat(timespec='milliseconds')+'Z')
© www.soinside.com 2019 - 2024. All rights reserved.