时间字符串和没有年份的当前时间之间的差异
Diff between time string and current time without year
我想确定日期字符串和当前时间之间的差异。
问题是时间字符串不包含年份(但是当前日期时间包含,所以在年份更改时会很麻烦吗?)
这是我当前的代码:
date_parsed = datetime.strptime('Fri Apr 27 19:09:53', '%a %b %d %H:%M:%S')
current_time = datetime.now()
我们可以假设 date_parsed
发生在过去 365 天内,对吗?
在这种情况下,使用.replace()
更改该日期的年份,将其与当前日期进行比较,并根据比较结果调整年份:如果日期在现在之后,则应该修改解析的日期,否则没关系:
from datetime import datetime
current_time = datetime.now()
date_parsed = datetime.strptime('Fri Apr 27 14:09:53', '%a %b %d %H:%M:%S').replace(year=current_time.year)
if date_parsed > current_time:
date_parsed = date_parsed.replace(year=current_time.year - 1)
print(date_parsed, current_time, current_time - date_parsed)
例如日期在 "the past":
2018-04-27 14:09:53 2018-04-27 18:28:10.484371 4:18:17.484371
例如"future" 中的日期:
2017-04-30 14:09:53 2018-04-27 18:30:48.864598 362 days, 4:20:55.864598
你 可以 使用 total_seconds
和模运算来完成它,但我认为你对闰年之类的事情有疑问。可能最好的方法是尝试两个替换:
tdiff = current_time - date_parsed.replace(year=current_time.year)
if tdiff.days < 0:
tdiff = current_time - date_parsed.replace(year=current_time.year-1)
您可以使用 .strftime()
方法同步您的 string time
和 current time
,如下所示:
from datetime import datetime
date_parsed = datetime.strptime('Fri Apr 27 19:09:53', '%a %b %d %H:%M:%S')
current_time = datetime.now().strftime("%m-%d %H:%M:%S")
date_ = date_parsed.strftime("%m-%d %H:%M:%S")
我想确定日期字符串和当前时间之间的差异。 问题是时间字符串不包含年份(但是当前日期时间包含,所以在年份更改时会很麻烦吗?)
这是我当前的代码:
date_parsed = datetime.strptime('Fri Apr 27 19:09:53', '%a %b %d %H:%M:%S')
current_time = datetime.now()
我们可以假设 date_parsed
发生在过去 365 天内,对吗?
在这种情况下,使用.replace()
更改该日期的年份,将其与当前日期进行比较,并根据比较结果调整年份:如果日期在现在之后,则应该修改解析的日期,否则没关系:
from datetime import datetime
current_time = datetime.now()
date_parsed = datetime.strptime('Fri Apr 27 14:09:53', '%a %b %d %H:%M:%S').replace(year=current_time.year)
if date_parsed > current_time:
date_parsed = date_parsed.replace(year=current_time.year - 1)
print(date_parsed, current_time, current_time - date_parsed)
例如日期在 "the past":
2018-04-27 14:09:53 2018-04-27 18:28:10.484371 4:18:17.484371
例如"future" 中的日期:
2017-04-30 14:09:53 2018-04-27 18:30:48.864598 362 days, 4:20:55.864598
你 可以 使用 total_seconds
和模运算来完成它,但我认为你对闰年之类的事情有疑问。可能最好的方法是尝试两个替换:
tdiff = current_time - date_parsed.replace(year=current_time.year)
if tdiff.days < 0:
tdiff = current_time - date_parsed.replace(year=current_time.year-1)
您可以使用 .strftime()
方法同步您的 string time
和 current time
,如下所示:
from datetime import datetime
date_parsed = datetime.strptime('Fri Apr 27 19:09:53', '%a %b %d %H:%M:%S')
current_time = datetime.now().strftime("%m-%d %H:%M:%S")
date_ = date_parsed.strftime("%m-%d %H:%M:%S")