A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 yangrui 于 2018-8-30 23:12 编辑

python有两个重要的时间模块,分别是time和datetime
先看time模块
表示时间的几种方法:
1)时间元组:time.struct_time(tm_year=2016, tm_mon=7,    tm_mday=21,
                                                 tm_hour=22,       tm_min=32,    tm_sec=51,
                                                 tm_wday=3,       tm_yday=203, tm_isdst=0)
此元组有9个元素(年,月,日,时,分,秒,周几,年中第几天,是否夏令时)
2)时间戮:距离1970-01-01 00:00:00此时间的总秒数
3)格式化显示(‘%Y-%m-%d %X')等等
4)英文显示   'Mon Jan 26 00:52:24 1970'
先看一time模块的方法
再看一下关系图:
举几个例子
先设一个时间元组,9个参数,最后3位可为0
t = (2016,7,21,22,47,45,0,0,0

#给定时间求时间戮:
In[21]: time.mktime(t)
Out[21]:1469112465.0

#求当前时间戮
In[23]: time.time()
Out[23]:1469112643.2187786

#按指定格式显示时间
In [25]: time.strftime('%x %X',t)
Out[25]:'07/21/1622:47:45'
#给定一个时间字符串,按给定格式拆分成数组
In [26]: str='2016-04-23 12:34:54'
In [27]: time.strptime(str,'%Y-%m-%d %X')
Out[27]:time.struct_time(tm_year=2016, tm_mon=4, tm_mday=23, tm_hour=12,    tm_min=34, tm_sec=54, tm_wday=5,tm_yday=114, tm_isdst=-1)
In[28]: #英文显示

In[29]: time.asctime(t)
Out[29]:'Mon Jul 2122:47:45 2016'
time.sleep(秒) 延时给定秒数
===========================================================================================
datetime模块
此模块下有几个子模块:
date:处理年月日,
time:处理分秒时,微秒
datetime:处理年月日,时分秒,微秒,以此为主讲一讲
看一下datetime子模块下的方法,属性
datetime子模块也有个时间元组,是7个元素,可省略,省略的话默认为0
做了一个简单的说明图
举几个例子:
In[32]: from datetime import datetime

In[33]: #获取当前时间

In[34]: datetime.now()
Out[34]:datetime.datetime(2016, 7, 21, 23, 12, 51, 572284)

In[35]: datetime.today()
Out[35]:datetime.datetime(2016, 7, 21, 23, 13, 1, 458328)

In[36]: #获取零时区时间

In[37]: datetime.utcnow()
Out[37]:datetime.datetime(2016, 7, 21, 15, 13, 40, 754435)

In[38]: #获取当前时间戮

In[39]: a=datetime.now()

In[40]: a.timestamp()
Out[40]:1469114156.388418

In[42]: #设置一个时间对象

In[43]: d=datetime(2016,7,21,22,23,15)

In[44]: #自定义格式显示

In[45]: d.strftime('%x%X')
Out[45]:'07/21/1622:23:15'

In[46]: #显示英文格式

In[47]: d.ctime()
Out[47]:'Thu Jul 2122:23:15 2016'

In[48]: #显示日历(年,年中第几周,周几)

In[49]: d.isocalendar()
Out[49]:(2016, 29, 4)

datetime子模块单位时间间隔:datetime.resolution=1微秒。
date子模块的时间间隔为1天  date.resolution=1天
时间间隔乘以一个数,表示间隔几天
In[50]: from datetime import date

In[51]: #现在时间是

In[52]: date.today()
Out[52]:datetime.date(2016, 7, 21)

In[53]: #100天以前的日期是

In[54]: date.today()-date.resolution*100
Out[54]:datetime.date(2016, 4, 12)
6个元素的时间元组可以转换成9个元素的时间元组,供time模块使用
In[56]: d
Out[56]:datetime.datetime(2016, 7, 21, 22, 23, 15)

In[57]: d.timetuple()
Out[57]:time.struct_time(tm_year=2016, tm_mon=7, tm_mday=21, tm_hour=22, tm_min=23,tm_sec=15, tm_wday=3, tm_yday=203, tm_isdst=-1)
时间格式化:

%y 两位数的年份表示(00-99
%Y
四位数的年份表示(000-9999
%m
月份(01-12
%d
月内中的一天(0-31
%H 24
小时制小时数(0-23
%I 12
小时制小时数(01-12
%M
分钟数(00=59
%S
秒(00-59

%a
本地简化星期名称
%A
本地完整星期名称
%b
本地简化的月份名称
%B
本地完整的月份名称
%c
本地相应的日期表示和时间表示
%j
年内的一天(001-366
%p
本地A.M.P.M.的等价符
%U
一年中的星期数(00-53)星期天为星期的开始
%w
星期(0-6),星期天为星期的开始
%W
一年中的星期数(00-53)星期一为星期的开始
%x
本地相应的日期表示
%X
本地相应的时间表示
%Z
当前时区的名称
%% %
号本身

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马