Python日期处理详解:格式化、比较与timedelta运算
本文详解Python中datetime模块的日期处理功能,涵盖strftime与strptime实现日期字符串互转,以及利用timedelta类进行时间间隔计算、日期加减运算和天数差值获取,提供完整代码示例与参数说明。
本文通过具体示例介绍Python中日期加减及格式化操作的方法,旨在分享实用技巧并作为个人技术笔记留存。
1. 日期输出格式化
所有涉及日期与时间的API均包含在Python的datetime模块中。
1. 将datetime对象转换为字符串
now = datetime.datetime.now()
now.strftime('%Y-%m-%d %H:%M:%S')
#输出2012-03-05 16:26:23.870105
strftime是datetime类实例提供的方法,用于将日期时间对象格式化为字符串。
2. 将字符串转换为datetime对象
t_str = '2012-03-05 16:26:23' d = datetime.datetime.strptime(t_str, '%Y-%m-%d %H:%M:%S')
strptime是datetime类的静态方法,用于将格式化的字符串解析为日期时间对象。
2. 日期比较操作
datetime模块中定义了timedelta类,该类实例用于表示两个日期或时间点之间的时间间隔。
构造方法如下:
datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)。所有参数均具有默认值0,接受int或float类型的正负数值。
可通过访问timedelta.days、timedelta.seconds等属性来获取对应的时间分量值。
timedelta类的实例支持加法、减法、乘法和除法运算,运算结果仍为timedelta类实例。例如:
year = timedelta(days=365) ten_years = year *10 nine_years = ten_years - year
同时,date、time和datetime类也支持与timedelta进行加法和减法运算。
datetime1 = datetime2 +/- timedelta timedelta = datetime1 - datetime2
这种机制使得许多时间相关的功能实现变得非常便捷。
1. 计算两个日期相差的天数。
d1 = datetime.datetime.strptime('2012-03-05 17:41:20', '%Y-%m-%d %H:%M:%S')
d2 = datetime.datetime.strptime('2012-03-02 17:41:20', '%Y-%m-%d %H:%M:%S')
delta = d1 - d2
print delta.days
输出结果:3
2. 计算今天起n天后的日期。
now = datetime.datetime.now()
delta = datetime.timedelta(days=3)
n_days = now + delta
print n_days.strftime('%Y-%m-%d %H:%M:%S')
输出结果:2012-03-08 17:44:50
#coding=utf-8
import datetime
now=datetime.datetime.now()
print now
#将日期转化为字符串 datetime => string
print now.strftime('%Y-%m-%d %H:%M:%S')
t_str = '2012-03-05 16:26:23'
#将字符串转换为日期 string => datetime
d=datetime.datetime.strptime(t_str,'%Y-%m-%d %H:%M:%S')
print d
#在datetime模块中有timedelta类,这个类的对象用于表示一个时间间隔,比如两个日#期或者时间的差别。
#计算两个日期的间隔
d1 = datetime.datetime.strptime('2012-03-05 17:41:20', '%Y-%m-%d %H:%M:%S')
d2 = datetime.datetime.strptime('2012-03-02 17:41:20', '%Y-%m-%d %H:%M:%S')
delta = d1 - d2
print delta.days
print delta
#今天的n天后的日期。
now=datetime.datetime.now()
delta=datetime.timedelta(days=3)
n_days=now+delta
print n_days.strftime('%Y-%m-%d %H:%M:%S')
以上就是本文的全部内容,希望这些示例能对读者的学习有所帮助,同时也欢迎大家继续支持本站。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













