datetime模块中包含五种基本类型:date、time、datetime、timedelta和tzinfo,tz是time zone的缩写,tzinfo用于表示时区信息,timedelta 表示两个datetime之间的差值。时间戳是指某一个特定的时刻,通常使用datetime对象来表示。
一,date类型
date类型表示日期,是由year、month和day构成的对象
1,初始化date对象
使用date(year,month,day)函数来初始化date对象:
from datetime import date
mydate=date(year,month,day)
2,date对象函数
date对象可以返回日期的year,month和day:
- mydate.year
- mydate.month
- mydate.day
date类型的类型方法 date.today() 用于返回当前的日期
>>> from datetime import date
>>> date.today()
datetime.date(2019, 6, 27)
3,date对象的格式化
把date对象转换为标准化的字符串 ‘YYYY-MM-DD’
>>> mydate=date(2019,3,1)
>>> mydate.__str__()
'2019-03-01'
>>> mydate.isoformat()
'2019-03-01'
>>> str(mydate)
'2019-03-01'
自定义格式:
- %Y:4位数表示的年份,YYYY
- %m:2位数字表示的月份,MM
- %d:2位数字表示的天份,DD
>>> mydate.strftime('%Y-%m-%d')
'2019-03-01'
>>> mydate.__format__('%Y-%m-%d')
'2019-03-01'
二,time类型
时间类型表示时间,不带日期属性,是由时、分、秒、毫秒和时区构成的对象,毫秒的取值范围是0~999999。
time(hour, minute, second[, microsecond[, tzinfo]])
时间对象的属性:
- mytime.hour
- mytime.minute
- mytime.second
- mytime.microsecond
- mytime.tzinfo
时间对象的格式化:
- %H:2位数字表示的24小时制
- %I:2位数字表示的12小时制
- %M:两位数字表示的分钟
- %S:2位数字表示的秒
- %f:6位数字表示的毫秒
三,datetime类型
datetime类型既包括日期,也包括时间,是由日期和时间构成的类型:
datetime.datetime(year, month, day[, hour[, minute[, second[, microsecond[, tzinfo]]]]])
datetime对象的属性:year、month、day、hour、minute、second、microsecond和tzinfo。
datetime对象的函数:
- mydatetime.date()
- mydatetime.time(),不带time zone,或者认为time zone是None
- mydatetime.timetz(),带有time zone
当前的日期和时间
from datetime import datetime
datetime.today()
datetime.utcnow()
datetime.now([tz])
四,timedelta类型
timedelta对象表示的是一个期间,是两个日期或时间之间的差值。注意,参数中没有年份。所有的参数都是可选的,默认值是0。
datetime.timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, weeks]]]]]]])
通过timedelta()来计算日期的增加或减少:
>>> from datetime import timedelta
>>> date(2019,3,1) + timedelta(days = 1)
datetime.date(2019, 3, 2)
>>> date(2019,4,1) + timedelta(days = -1)
datetime.date(2019, 3, 31)
五,strftime() 和 strptime()
date、time和datetime对象都有函数strftime(format),用于把日期和时间转换为具有特定格式的字符串,而类方法 datetime.strptime(date_string, format),用于把格式化的字符串转换为日期和时间类型。
举个例子,把字符串转为date类型:
>>> import datetime
>>> date_str = '2017-01-01'
>>> datetime.datetime.strptime(date_str,'%Y-%m-%d').date()
datetime.date(2017, 1, 1)
参考文档: