[英]How to use striptime '%Y-%m-%d %H:%M:%S' minus - 1 minute.?
I am trying to basically use striptime that gives me format of '%Y-%m-%d %H:%M:%S' etc '2019-05-03 09:00:00'
and what I am trying to achieve is that I want to take that time - 1 minute so the output should be - 2019-05-03 08:59:00
我正在尝试使用基本上给我'%Y-%m-%d%H:%M:%S'等
'2019-05-03 09:00:00'
,我正在尝试实现是我要花那个时间-1分钟所以输出应该是2019-05-03 08:59:00
what I have done so far is 到目前为止,我所做的是
date_time = '2019-05-03 09:00:00'
target = datetime.strptime(date_time, '%Y-%m-%d %H:%M:%S')
now = datetime.now()
delta = target - now
if delta > timedelta(0):
print('Will sleep {} : {}'.format(date_time, delta))
time.sleep(delta.total_seconds())
and I am not sure how I can make the function to do - 1 minute. 我不确定如何使该功能生效-1分钟。 I am not sure if its even possible?
我不确定是否可能?
It appears you meant to use the formatted datetime variable called target
in your if clause but instead you used the string representation of that date called date_time
. 看来您打算在if子句中使用格式为datetime的变量
target
,但是您使用了该日期的字符串表示形式date_time
。
Use the datetime object instead and substract timedelta(minutes=1)
改用datetime对象并减去
timedelta(minutes=1)
Working example: 工作示例:
date_time = '2019-05-03 09:00:00'
target = datetime.strptime(date_time, '%Y-%m-%d %H:%M:%S')
now = datetime.now()
delta = target - now
if delta > timedelta(0):
target = target - timedelta(minutes=1)
print('Will sleep {} : {}'.format(target, delta))
time.sleep(delta.total_seconds())
If you would like to use the current time to determine your output 如果您想使用当前时间来确定您的输出
import datetime, time
from datetime import timedelta
daytime = '2019-05-03 09:00:00'
target = datetime.datetime.strptime(daytime, '%Y-%m-%d %H:%M:%S')
print (datetime.datetime.now())
now = datetime.datetime.now()
new_time = target-now
if new_time > datetime.timedelta(0):
print('Will sleep {} : {}'.format(daytime, new_time))
time.sleep(new_time.total_seconds())
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.