Python datetime模块学习

一、datetime模块介绍

datetime模块中包含的类:

类名 功能说明
date 日期对象,常用的属性有year, month, day
time 时间对象
datetime 日期时间对象,常用的属性有hour, minute, second, microsecond
datetime_CAPI 日期时间对象C语言接口
timedelta 时间间隔,即两个时间点之间的长度
tzinfo 时区信息对象

二、date类

1.date类对象由year、month、day三部分构成;
date(year,month,day)
2.对year、month、day的访问;

使用yearmonthday三个数据描述符可以进行访问,或者使用__getattribute__获取。

>>> d = datetime.date.today()
>>> d
datetime.date(2018, 7, 10)
>>> d.year
2018
>>> d.month
7
>>> d.__getattribute__('year')
2018
>>> 
3.一些常用方法

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类

1.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
2.时间类输出__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类

1.datetime类其实是可以看做是date类和time类的合体,其大部分的方法和属性都继承于这二个类。
2.datetime的方法和属性

①返回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

五、timedelta类

timedelta类是用来计算两个datetime对象的差值的。 
此类中包含如下属性: 
1、days:天数 
2、microseconds:微秒数 
3、seconds:秒数(>=0 并且 <1天)
4、total_seconds  : 总秒数





你可能感兴趣的:(python基础)