datetime模块中包含的类:
类名 | 功能说明 |
---|---|
date | 日期对象,常用的属性有year, month, day |
time | 时间对象 |
datetime | 日期时间对象,常用的属性有hour, minute, second, microsecond |
datetime_CAPI | 日期时间对象C语言接口 |
timedelta | 时间间隔,即两个时间点之间的长度 |
tzinfo | 时区信息对象 |
date(year,month,day)
使用year
, month
, day
三个数据描述符可以进行访问,或者使用__getattribute__获取。
>>> d = datetime.date.today()
>>> d
datetime.date(2018, 7, 10)
>>> d.year
2018
>>> d.month
7
>>> d.__getattribute__('year')
2018
>>>
1).isocalendar
:返回一个三个值依次为:year
年份,week number
周数,weekday
星期数(周一为1…周日为7)的元组。
>>> d = datetime.date(2018,7,10)
>>> d.isocalendar()
(2018, 28, 2)
>>> d.isocalendar()[0]
2018
>>>
2).isoformat
: 返回符合ISO 8601标准 (YYYY-MM-DD
) 的日期字符串;
>>> d = datetime.date(2018,7,10)
>>> d.isoformat()
'2018-07-10'
3). timetuple
:该方法为了兼容time.localtime
返回一个类型为time.struct_time
的数组,但有关时间的部分元素值为0:
>>> d = datetime.date(2018,7,10)
>>> d.timetuple()
time.struct_time(tm_year=2018, tm_mon=7, tm_mday=10, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=1, tm_yday=191, tm_isdst=-1)
>>> d.timetuple().tm_year
2018
4).fromtimestamp
:根据给定的时间戮,返回一个date对象
>>> time.time()
1531207860.6088855
>>> datetime.date.fromtimestamp(time.time())
datetime.date(2018, 7, 10)
>>>
5).today
:返回当前日期
>>> datetime.date.today()
datetime.date(2018, 7, 10)
>>>
6).用__format__、strftime、
方法以指定格式进行日期输出__str__
>>> d = datetime.date(2018,7,10)
>>> d.__format__('%Y-%m-%d')
'2018-07-10'
>>> d.__format__('%Y/%m/%d')
'2018/07/10'
>>> d.strftime('%y/%m/%d')
'18/07/10'
>>> d.__str__()
'2018-07-10'
time
类由hour
小时、minute
分钟、second
秒、microsecond
毫秒和tzinfo
五部分组成>>> t = datetime.time(15,48,20,599)
>>> t
datetime.time(15, 48, 20, 599)
>>> t.hour
15
>>> t.second
20
>>> t.__getattribute__('hour')
15
__format__、strftime、__str__
方法>>> t.__format__('%H:%M:%S')
'15:48:20'
>>> t.strftime('%H:%M:%S')
'15:48:20'
>>> t.__str__()
'15:48:20.000599'
>>>
datetime
类其实是可以看做是date
类和time
类的合体,其大部分的方法和属性都继承于这二个类。①返回datetime对象的日期和时间
>>> d = datetime.datetime.now()
>>> d
datetime.datetime(2018,7,10,19,8,642077)
>>> d.date()
datetime.date(2018,7,10)
>>>d.time()
datetime.time(19,49,8,642077)
②返回UTC时间元祖
>>> d = datetime.datetime.now()
>>> d
datetime.datetime(2018,7,10,19,8,642077)
>>> d.utctimetuple()
time.struct_time(tm_year=2018, tm_mon=7, tm_mday=10, tm_hour=19, tm_min=8, tm_sec=33, tm_wday=2, tm_yday=81, tm_isdst=0)
③根据string, format 2个参数,返回一个对应的datetime对象
>>> datetime.datetime.strptime('2018-7-10 20:01','%Y-%m-%d %H:%M')
datetime.datetime(2018, 7, 10, 20, 01)
④strftime格式化时间
>>> d = datetime.datetime.now()
>>> d.strftime('%Y-%m-%d %H:%M')
2018-7-10 20:05
⑤时间戳与日期时间互转
>>> s = datetime.datetime.fromtimestamp(time.time())
>>> s
datetime.datetime(2018, 7, 10, 20, 9, 42,835691)
>>> s.timestamp()
1531228127.684423
⑥datetime的属性
>>> d = datetime.datetime.now()
>>> d
datetime.datetime(2018,7,10,19,8,642077)
>>> d.year
2018
>>> d.hour
19