python - 在 Python 中生成 ISO8601 格式的随机日期时间列表
问题描述
我想在 Python 中生成一个长度为 n 的列表,其中包含一个范围内的随机日期时间字符串。
import datetime
start = datetime.datetime(2019,1,1,0,0,0).astimezone().replace(microsecond=0).isoformat()
end = datetime.datetime(2019,12,31,23,59,59).astimezone().replace(microsecond=0).isoformat()
我之前问过类似的问题,但我没有使用正确的日期时间格式。实现此目的的最佳方法是什么?
解决方案
在此处为您的格式修改答案:https ://stackoverflow.com/a/553448/7942856
from random import randrange
from datetime import timedelta, datetime
start = datetime(2019,1,1,0,0,0).astimezone().replace(microsecond=0)
end = datetime(2019,12,31,23,59,59).astimezone().replace(microsecond=0)
n = 5
def random_date(start, end):
"""
This function will return a random datetime between two datetime
objects.
"""
delta = end - start
int_delta = (delta.days * 24 * 60 * 60) + delta.seconds
random_second = randrange(int_delta)
return start + timedelta(seconds=random_second)
random_dates = [random_date(start, end) for i in range(n)]
输出:
[datetime.datetime(2019, 8, 6, 2, 25, 32, tzinfo=datetime.timezone(datetime.timedelta(seconds=39600), 'AUS Eastern Summer Time')), datetime.datetime(2019, 8, 5, 13, 2, 15, tzinfo=datetime.timezone(datetime.timedelta(seconds=39600), 'AUS Eastern Summer Time')), datetime.datetime(2019, 6, 24, 15, 57, 19, tzinfo=datetime.timezone(datetime.timedelta(seconds=39600), 'AUS Eastern Summer Time')), datetime.datetime(2019, 5, 3, 9, 35, 8, tzinfo=datetime.timezone(datetime.timedelta(seconds=39600), 'AUS Eastern Summer Time')), datetime.datetime(2019, 2, 12, 14, 33, 35, tzinfo=datetime.timezone(datetime.timedelta(seconds=39600), 'AUS Eastern Summer Time'))]
然后,如果您想要文本 ISO 格式,只需调用.isoformat()
您的列表元素。
[random_date(start, end).isoformat() for i in range(n)]
#['2019-05-03T22:06:56+11:00', '2019-12-31T06:56:09+11:00', '2019-03-09T05:07:59+11:00', '2019-03-24T09:24:42+11:00', '2019-01-08T03:23:31+11:00']
推荐阅读
- node.js - Docker 映像运行中的 JavaScript 堆内存不足
- spring - DropDownlist 如何使用 Spring boot Mysql 加载数据
- sql-server - SQL-Server:关键字“with”附近的语法不正确。如果此语句是公用表表达式,则为 xmlnamespaces 子句
- xamarin.forms - 允许弹出窗口在 Xamarin Forms WebView 中工作
- python-3.x - 不知道为什么我在 django 中得到一个(CSRF 令牌丢失或不正确。)错误
- node.js - webpack 不生成 bundle.js?
- javascript - 映射具有任意数量节点的嵌套数组的最简单方法
- reactjs - 如何在不使用 React 中的父子关系的情况下将数据发送到另一个组件
- sql - Spark sql查询以查找按最大重叠度排序的同一表的两列之间的多对多映射
- java - Java Maven 项目不会导入插件