Генерация случайной даты определенного месяца в порядке с использованием Python - PullRequest
0 голосов
/ 01 октября 2019

Как сгенерировать случайную дату определенного месяца в этом конкретном формате. По порядку, т. Е. От 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))

1 Ответ

2 голосов
/ 01 октября 2019

Возможно, вы можете получить разницу в секундах между вашими датами и затем использовать 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')
...