背景:楼上需求方又双叒来提需求来来,这次是想要判断两个时间的天数差,
if 天数差 > xx and 天数差 < yy:
。。。。
在python中,我们有很多比如time包,datetime包中的方法可以帮助我们完成时间差的计算,比如
from datetime import date, datetime
def date_diff(date1, date2=None, format="%Y-%m-%d %H:%M:%S"):
"""
计算日期差,传入默认都是str的
"""
date1 = datetime.strptime(date1, format).date() if isinstance(date1, str) else date1.date()
if date2:
date2 = datetime.strptime(date2, format).date()
else:
date2 = date.today()
return abs(date2 - date1).days
def month_delta(start_date, end_date=datetime.now()):
"""
计算月份之差
返回 end_date - start_date 的差值
:param start_date:
:param end_date:
:return: month_delta int
"""
return (end_date.year - start_date.year) * 12 + e

在Python中计算时间差相对简单,但Golang的time包并不直接提供天数差计算。本文讲述了作者在Golang项目中因对time包理解不深而踩坑的经历,最初仅通过Day()属性计算日期差导致错误。在修复过程中,使用time.LoadLocation处理时区问题,得到的是两个时间戳相差的天数,而非实际日期差。文中还提到一种字符串解析的方法来实现date_diff功能,期待更好的解决方案。
最低0.47元/天 解锁文章
1130

被折叠的 条评论
为什么被折叠?



