python - 生成间隔为 5 分钟的随机时间
问题描述
我正在尝试获得如下所示的输出:
12:15
07:55
02:20
04:35
我设法得到以下输出:
2020-07-03 03:53:32
2020-07-20 08:01:15
2020-07-29 10:04:11
2020-07-07 07:17:24
2020-07-20 12:13:32
通过使用此代码:
import datetime
import time
import random
MINTIME = datetime.datetime(2020,7,1,0,0,0)
MAXTIME = datetime.datetime(2020,7,31,0,0,0)
mintime_ts = int(time.mktime(MINTIME.timetuple())) #convert date into int
maxtime_ts = int(time.mktime(MAXTIME.timetuple())) #convert date into int
for RECORD in range(100):
random_ts = random.randint(mintime_ts, maxtime_ts)
RANDOMTIME = datetime.datetime.fromtimestamp(random_ts)
print(RANDOMTIME)
所以,基本上我有两个问题。第一个是我只想以 (hh:mm) 的格式获取时间。第二个是我希望该步骤为 5 分钟(例如 14:50 或 04:35 .. 等)。
谢谢
解决方案
您可以确定最短和最长时间之间的 5 分钟时段数,并随机选择其中一个时段。
对于输出,使用该strftime
方法获取您想要的任何格式:
import datetime
import time
import random
MINTIME = datetime.datetime(2020,7,1,0,0,0)
MAXTIME = datetime.datetime(2020,7,31,0,0,0)
mintime_ts = int(time.mktime(MINTIME.timetuple())) #convert date into int
maxtime_ts = int(time.mktime(MAXTIME.timetuple())) #convert date into int
nb_slots = (maxtime_ts - mintime_ts)//(5*60) # number of 5 minutes slots
for RECORD in range(10):
random_slot = random.randint(0, nb_slots)
random_ts = mintime_ts + 5*60 * random_slot
RANDOMTIME = datetime.datetime.fromtimestamp(random_ts)
print(datetime.datetime.strftime(RANDOMTIME, '%H:%M'))
输出:
11:20
15:20
11:25
02:10
13:30
08:30
00:45
06:10
17:05
01:00
推荐阅读
- wagtail - Wagtail ModelAdmin中可排序InlineFields中的条件默认条目
- java - Java Swing 问题 - 调色板菜单为空
- python - discord.py - 猜谜游戏没有反应
- c++ - 为什么这个服务器可以处理 python 请求而不是 node.js?(ECCONRESET)
- binary - WSO2 ESB 7.1.0 二进制响应被截断为 375B
- javascript - html中每页的动态脚注
- flutter - 如何解决问题 adb 服务器版本 (41) 与此客户端 (40) 不匹配?
- python - 如何将 Nonetype 转换为整数?
- javascript - 单点登录会影响运行哪个 javascript 和 cshtml
- amazon-web-services - Lambda 初始化和验证错误 Lex