【发布时间】:2020-07-17 06:12:33
【问题描述】:
使用 Rouble 的建议和基于该建议的 Maulik Gangani 的示例:
How do I determine if current time is within a specified range using Python's datetime module?
我有两个时间字符串已使用 .strptime 转换为日期时间对象,如下所示:
timeStart = '0300'
timeStart = datetime.strptime(timeStart, '%H%M')
我现在有一个日期时间对象: timeNow = datetime.now()
我的问题是,除非我将 timeNow (日期时间对象)转换为字符串,然后使用 .strptime 再次返回,否则脚本将无法工作:
timeNow = datetime.now()
timeNow = datetime.strftime(timeNow, '%H%M')
timeNow = datetime.strptime(timeNow, '%H%M')
完整代码:
from datetime import datetime
def isNowInTimePeriod(startTime, endTime, nowTime):
if startTime < endTime:
return nowTime >= startTime and nowTime <= endTime
else: #Over midnight
return nowTime >= startTime or nowTime <= endTime
timeStart = '0300'
timeEnd = '1000'
timeEnd = datetime.strptime(timeEnd, '%H%M')
timeStart = datetime.strptime(timeStart, '%H%M')
timeNow = datetime.now()
timeNow = datetime.strftime(timeNow, '%H%M')
timeNow = datetime.strptime(timeNow, '%H%M')
我的问题是,如何格式化 timeNow = datetime.now() 以便我可以将其与 24 小时格式 '0000' 的字符串进行比较,而无需将 datetime.now() 转换为字符串并再次返回?
【问题讨论】:
-
我尝试将我的计算机时间格式从上午/下午转换为 24 小时制,然后执行:
dt.datetime.now(),这给了我输出:datetime.datetime(2020, 7, 17, 20, 55, 10, 262243)。这里清楚地显示日期:2020 年 7 月 17 日,时间为 20:55:10:262243,格式为 HH:MM:SS。