我有一个字符串作为5/4/2017 2:13:04 PM
现在是UTC时区。我需要检查是否早于5分钟。所以我尝试了以下代码。
statustime="""5/4/2017 2:13:04 PM"""
statustimefrm= datetime.strptime(statustime, "%m/%d/%Y %H:%M:%S %p")
print "Input time "+str(statustimefrm)
print "Current time "+str(datetime.utcnow())
if statustimefrm < datetime.utcnow() + timedelta(seconds = -300):
print "disconnected longer than 5 mins"
else:
print "just disconnected wait"
输出是
Input time 2017-05-04 02:13:04
Current time 2017-05-04 14:16:23.147151
disconnected longer than 5 mins
当它转换时
statustimefrm= datetime.strptime(statustime, "%m/%d/%Y %H:%M:%S %p")
似乎没有考虑到PM。查看文档时,%p用于AM / PM。那么为什么它不起作用呢?
最佳答案
您需要将%H
更改为%I
:
statustimefrm= datetime.strptime(statustime, "%m/%d/%Y %I:%M:%S %p")
使用
strptime
时,只有在小时字段中使用%p
时,%I
才有效。关于python - 在Python中如何将字符串转换为日期并检查其是否早于5分钟,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43785494/