文章来源:https://docs.python.org/3/library/datetime.html#module-datetime
datetime模块提供了简单和复杂的方式操作日期和时间类。虽然datetime支持日期和时间算法,但实现的重点是有效的属性提取,用于格式化输出和便于操作。
主要有两种日期和时间对象:‘navic’和‘aware’。
datetime中两个常量:
-
datetime.MINYEAR
在date或者是datetime中允许存在的最小年份。 -
datetime.MAXYEAR
在date或者是datetime中允许存在的最大年份。
类间的继承关系:
关于以上继承关系类的介绍,在官方文档中有较为消息的介绍。在这里,我懒了。。。
https://docs.python.org/3/library/datetime.html#module-datetime
1 timedelta Objects
timedelta对象表示的是持续时间,即两个日期之间的差异。
class datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
'''
关于该类中的所有参数默认值都是0,可以是int/float类型的正数或者是负数。
在该类只会存储天,秒和微秒。参数的转换如下:
1毫秒=1000微秒 1 milliseconds = 1000 microseconds
1分钟=60秒 1 minute = 60 seconds
1周=7天 1 week = 7 days
关于毫秒、秒和天的取值范围
0 <= microseconds < 1000000
0 <= seconds < 3600*24 (the number of seconds in one day)
-999999999 <= days <= 999999999
'''
示例:
>>> from datetime import timedelta
>>> d = timedelta(microseconds =-1)
>>> d
datetime.timedelta(days=-1, seconds=86399, microseconds=999999)
>>> d.days
-1
>>> d.seconds
86399
>>> d.microseconds
999999
该类的属性:
- timedelta.min
The most negative timedelta object, timedelta(-999999999). - timedelta.max
The most positive timedelta object, timedelta(days=999999999, hours=23, minutes=59, seconds=59, microseconds=999999). - timedelta.resolution
两个不等的timedelta对象的最小可能差异
关于该类的三个可读属性
所支持的时间操作:
instance methods
- timedelta.total_seconds()
计算总秒数
>>> year = timedelta(days=365)
>>> another_year = timedelta(weeks=40,days=84,hours=23,minutes=50,seconds = 600)
>>> year.total_seconds()
31536000.0
>>> year == another_year
True
>>> ten_years = 10 * year
>>> ten_years,ten_years.days//365
(datetime.timedelta(days=3650), 10)
>>> nine_years = ten_years - year
>>> nine_years,nine_years.days//365
(datetime.timedelta(days=3285), 9)
>>> three_years = nine_years // 3
>>> three_years,three_years.days//365
(datetime.timedelta(days=1095), 3)
>>> abs(three_years-ten_years)==2*three_years+year
True