Python时间模块

71 阅读3分钟

时间模块

Python中有很多方便我们处理时间信息的模块

  • time模块
  • datetime 模块
  • pytz模块
  • dateutil模块

这里我们着重介绍的是前两种

time模块

  • 返回当前时间于 Unix时间 (1970.1.1 00:00:00)经过的秒数

  • 返回值也称作时间戳,是一个浮点数类型

time.time()


  • 时间戳秒数转换为表示本地时间时间元组

  • 如果没有传入参数,则直接返回当前本地时间时间元组

time.localtime(seconds)

时间元组:(tm_year, tm_mon, tm_mday, tm_hour, tm_min, tm_sec, tm_wday, tm_yday, tm_isdst)

tm_wday:从0开始,表示星期几

<font color=#6495ED>**tm_yday**</font>:第几天

tm_isdst:夏令时的决定旗标


  • 推迟程序的运行,参数为推迟的秒数

time.sleep(seconds)


  • 一般用来衡量程序耗时

time.clock()

win

第一次调用:浮点数形式返回当前CPU运行时间

第二次调用:浮点数形式返回距离上次调用该函数至此次的时间间隔

Linux

浮点数返回当前的程序执行时间


time.asctime(tupletime)

  • 将一个时间元组返回为一个可读形式字符串
>>> time.asctime(time.localtime())
'Fri Feb  2 22:26:36 2018'

  • 时间元组根据指定格式返回为可读字符串

time.strftime( format [, tuple] )


  • 可读字符串根据格式返回为时间元组

time.strptime( string, format )


格式

  • %Y:年份
  • %m:月份
  • %d:天数
  • %H:小时
  • %M:分钟
  • %S:秒
  • %x:天/月/年
  • %X:当前 时:分:秒
  • %A:星期 (全称)
  • %a:星期 (缩写)
 >>> time.strftime('%Y %m %d',time.localtime())
'2018 02 02'
>>> time.strptime('2018 02 02','%Y %m %d')
time.struct_time(tm_year=2018, tm_mon=2, tm_mday=2, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=4, tm_yday=33, tm_isdst=-1)

datetime模块

子模块介绍:在datetime模块分别包含了以下三个模块进行时间处理

  • datetime.datetime:处理年月日,时分秒

  • datetime.date:处理年月日

  • datetime.time:处理时分秒


  • 获取当前时间,包含年月日时分秒微秒,返回类型为datetime.datetime

datetime.datetime.now()

datetime.datetime.today()


  • 返回当前时间,只包含年月日

datetime.date.today()


  • 表示时间差

datetime.datetime.delta(days=999999999, hours=23, minutes=59, seconds=59, microseconds=999999)

>>> now = datetime.datetime.now()
>>> now
datetime.datetime(2018, 2, 10, 17, 12, 18, 220858)
>>> de = datetime.timedelta(days=30)
>>> de + now
datetime.datetime(2018, 3, 12, 17, 12, 18, 220858)

一些时间实例中的函数:

res = datetime.datetime.today()

res = datetime.date.today()

res = datetime.time(10,20,10)


一些通用实例函数,在下列举


res.year:年

res.month:月

res.day:日

res.hour: 时

res.minute:分

res.second:秒


  • 获取当前时间戳

res.timestamp()


  • 获取当前时间元组

res.timetuple()


  • 返回一个字符串日期

res.ctime()


  • 将指定值替换后返回一个新的date数据

res.replace(year, month, day, hour, minute, second)


  • 返回一个时间元组

res.timetuple()


  • 0开始返回当前时间是星期几,星期一为0星期日为6

**res.weekday() **


  • ISO时间标准格式从1开始返回当前时间是星期几;星期一为1星期日为7

res.isoweekday()


  • ISO表示格式的时间元组(年,月,日)

res.isocalendar()


  • 返回 一个**'YYYY-MM-DD'字符串格式**

res.isoformat()


构造自己的时间

datetime.datetime(2018, 2, 2, 23, 11, 2, 9999)

参数位置分别为:年 月 日 时 分 秒 微秒

返回值: datetime.datetime类型