将一个日期和一个 15 分钟的时间块数转换为完整的日期时间
Convert a date and a 15 minutes time block number to complete datetime
如果我们将一天的 24 小时时间范围划分为 15 分钟的区间或块,我们将得到 96 个块。因此,块=1 表示 00:00:00
小时到 00:14:00
小时,block=96
表示 23:45:00
小时到 23:59:00
小时。
我有两个输入,一个日期(比如,2020-07-25
)和一个十五分钟的块号,可以是 1 到 96 之间的任何数字(比如,2,即 00:15:00 to 00:30:00
),从这些我想生成一个完整的日期时间,例如 2020-07-25 00:15:00
如何有效地做到这一点?
您可以添加带有 space 的两个输入,例如 output=input1+' ' + input2
,然后将其转换为日期时间
import datetime
value=datetime.datetime.strptime(output,format='%Y-%m-%d %H:%M:%S')
这应该可以解决问题,您只需根据块号向特定日期添加分钟数。
from datetime import datetime, timedelta
def operation(date, block):
return date + timedelta(minutes=15 * (block - 1))
date = datetime.strptime("2020-07-25", "%Y-%m-%d")
block = 2
print(operation(date, block))
生成 l
中的所有时间,定义将 block_number
映射到时间的字典 d
,
获取 2 个输入并从中构建最终日期时间:
from datetime import datetime
l = [str(h).zfill(2) + ':' + str(m).zfill(2) + ':' + '00'
for h in range(24)
for m in (0, 15, 30, 45)
]
d = {block_number: t for block_number, t in enumerate(l)}
date_str = "2020-07-25"
block_number = 5
dt = date_str + ' ' + d.get(block_number)
date_time_obj = datetime.strptime(dt, '%Y-%m-%d %H:%M:%S')
print(date_time_obj)
制作中:
2020-07-25 01:15:00
如果我们将一天的 24 小时时间范围划分为 15 分钟的区间或块,我们将得到 96 个块。因此,块=1 表示 00:00:00
小时到 00:14:00
小时,block=96
表示 23:45:00
小时到 23:59:00
小时。
我有两个输入,一个日期(比如,2020-07-25
)和一个十五分钟的块号,可以是 1 到 96 之间的任何数字(比如,2,即 00:15:00 to 00:30:00
),从这些我想生成一个完整的日期时间,例如 2020-07-25 00:15:00
如何有效地做到这一点?
您可以添加带有 space 的两个输入,例如 output=input1+' ' + input2
,然后将其转换为日期时间
import datetime
value=datetime.datetime.strptime(output,format='%Y-%m-%d %H:%M:%S')
这应该可以解决问题,您只需根据块号向特定日期添加分钟数。
from datetime import datetime, timedelta
def operation(date, block):
return date + timedelta(minutes=15 * (block - 1))
date = datetime.strptime("2020-07-25", "%Y-%m-%d")
block = 2
print(operation(date, block))
生成 l
中的所有时间,定义将 block_number
映射到时间的字典 d
,
获取 2 个输入并从中构建最终日期时间:
from datetime import datetime
l = [str(h).zfill(2) + ':' + str(m).zfill(2) + ':' + '00'
for h in range(24)
for m in (0, 15, 30, 45)
]
d = {block_number: t for block_number, t in enumerate(l)}
date_str = "2020-07-25"
block_number = 5
dt = date_str + ' ' + d.get(block_number)
date_time_obj = datetime.strptime(dt, '%Y-%m-%d %H:%M:%S')
print(date_time_obj)
制作中:
2020-07-25 01:15:00