Python学习总结14:时间模块datetime & time & calendar (一)

Python中的常用于处理时间主要有3个模块datetime模块、time模块和calendar模块。

一、time模块

1. 在Python中表示时间的方式

1)时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。返回时间戳方式的函数主要有time(),clock()等。

2)格式化的时间字符串

3)元组(struct_time):共有9个元素,返回struct_time的函数主要有gmtime(),localtime(),strptime()。这种方式元组中的几个元素如下:

索引(Index) 属性(Attribute) 值(Values)
0  tm_year(年)  比如2011 
1  tm_mon(月)  1 - 12
2  tm_mday(日)  1 - 31
3  tm_hour(时)  0 - 23
4  tm_min(分)  0 - 59
5  tm_sec(秒)  0 - 61
6  tm_wday(weekday)  0 - 6(0表示周日)
7  tm_yday(一年中的第几天)  1 - 366
8  tm_isdst(是否是夏令时)  默认为-1

ps:UTC(Coordinated Universal Time,世界协调时)亦即格林威治天文时间,世界标准时间。在中国为UTC+8。DST(Daylight Saving Time)即夏令时。

2. time模块中常用的函数

1)time.localtime([secs])

将一个时间戳转换为当前时区的struct_time。未提供secs参数,则以当前时间为准。

>>> import time
>>> time.localtime()
time.struct_time(tm_year=2016, tm_mon=8, tm_mday=5, tm_hour=20, tm_min=44, tm_sec=26, tm_wday=4, tm_yday=218, tm_isdst=0)
>>> time.localtime(1304575584.1361799)
time.struct_time(tm_year=2011, tm_mon=5, tm_mday=5, tm_hour=14, tm_min=6, tm_sec=24, tm_wday=3, tm_yday=125, tm_isdst=0)

2)time.gmtime([secs])

和localtime()方法类似,gmtime()方法是将一个时间戳转换为UTC时区(0时区)的struct_time。

>>> time.gmtime()
time.struct_time(tm_year=2016, tm_mon=8, tm_mday=5, tm_hour=12, tm_min=47, tm_sec=35, tm_wday=4, tm_yday=218, tm_isdst=0)

3)time.time()

返回当前时间的时间戳。

>>> time.time()
1470401362.259

4) time.mktime(t)

将一个struct_time转化为时间戳。

>>> time.mktime(time.localtime())
1470401449.0

5)time.sleep(secs)

线程推迟指定的时间运行。单位为秒。

6)time.clock()

这个需要注意,在不同的系统上含义不同。 在UNIX系统上,它返回的是“进程时间”,它是用秒表示的浮点数(时间戳)。而在WINDOWS中,第一次调用,返回的是进程运行的实际时间。而第二次 之后的调用是自第一次调用以后到现在的运行时间。(实际上是以WIN32上QueryPerformanceCounter()为基础,它比毫秒表示更为 精确)

import time
if __name__ == ‘__main__‘:
    time.sleep(1)
    print "clock1:%s" % time.clock()
    time.sleep(1)
    print "clock2:%s" % time.clock()
    time.sleep(1)
    print "clock3:%s" % time.clock()

运行结果:

clock1:3.35238137808e-006
       clock2:1.00004944763
       clock3:2.00012040636
       其中第一个clock()输出的是程序运行时间
       第二、三个clock()输出的都是与第一个clock的时间间隔
      7)time.asctime([t])

把一个表示时间的元组或者struct_time表示为这种形式:‘Sun Jun 20 23:21:05 1993‘。如果没有参数,将会将time.localtime()作为参数传入。

>>> time.asctime()
‘Thu May 5 14:55:43 2011‘

8)time.ctime([secs])

把一个时间戳(按秒计算的浮点数)转化为time.asctime()的形式。如果参数未给或者为None的时候,将会默认time.time()为参数。它的作用相当time.asctime(time.localtime(secs))。

>>> time.ctime()
‘Thu May 5 14:58:09 2011‘
>>> time.ctime(time.time())
‘Thu May 5 14:58:39 2011‘
>>> time.ctime(1304579615)
‘Thu May 5 15:13:35 2011‘

9)time.strftime(format[, t])

把一个代表时间的元组或者struct_time(如由time.localtime()和time.gmtime()返回)转化为格式化的时间字符串。如果t未指定,将传入time.localtime()。如果元组中任何一个元素越界,ValueError的错误将会被抛出。

备注:
     “%p”只有与“%I”配合使用才有效果。
     文档中强调确实是0 - 61,而不是59,闰年秒占两秒。
     当使用strptime()函数时,只有当在这年中的周数和天数被确定的时候%U和%W才会被计算。

>>> time.strftime("%Y-%m-%d %X", time.localtime())
‘2011-05-05 16:37:06‘

10)time.strptime(string[, format])

把一个格式化时间字符串转化为struct_time。实际上它和strftime()是逆操作。

>>> time.strptime(‘2011-05-05 16:37:06‘, ‘%Y-%m-%d %X‘)
time.struct_time(tm_year=2011, tm_mon=5, tm_mday=5, tm_hour=16, tm_min=37, tm_sec=6, tm_wday=3, tm_yday=125, tm_isdst=-1)

time模块中三种表示时间的方法相互转化,可以总结如下图

时间: 2024-10-20 06:00:53

Python学习总结14:时间模块datetime & time & calendar (一)的相关文章

Python学习总结15:时间模块datetime & time & calendar (二)

二 .datetime模块  1. datetime中常量 1)datetime.MINYEAR,表示datetime所能表示的最小年份,MINYEAR = 1. 2)datetime.MAXYEAR,表示datetime所能表示的最大年份,MAXYEAR = 9999. 2. datetime中的常见类 datetime模块定义了下面这几个类: •datetime.date:表示日期的类.常用的属性有year, month, day:     •datetime.time:表示时间的类.常用的

Python学习(14)模块

目录 Python 模块 import语句 from ... import 语句 from ... import * 语句 定位模块 PYTHONPATH变量 命名空间和变量 dir()函数. globals()和locals()函数 reload()函数 Python中的包 Python 模块 模块让你能够有逻辑地组织你的Python代码段. 把相关的代码分配到一个 模块里能让你的代码更好用,更易懂. 模块也是Python对象,具有随机的名字属性用来绑定或引用. 简单地说,模块就是一个保存了P

Python学习总结16:时间模块datetime & time & calendar (三)

calendar模块 常见函数及说明 1 calendar.calendar(year,w=2,l=1,c=6)   返回一个多行字符串格式的year年年历,3个月一行,间隔距离为c. 每日宽度间隔为w字符.每行长度为21* W+18+2* C.l是每星期行数. 2 calendar.firstweekday( )   返回当前每周起始日期的设置.默认情况下,首次载入caendar模块时返回0,即星期一. 3 calendar.isleap(year) 是闰年返回True,否则为false. 4

Python 学习之路 - 时间模块

time模块: 1 import time 2 3 #得到时间戳,从1970年1.1凌晨到现在计时,1970出现unix 4 print(time.time()) 5 6 #返回时间的字符串模式,默认是当前系统时间 7 print(time.ctime()) 8 print(time.ctime(time.time()-86400))#86400一天的秒数 9 10 #返回struct_time对象,东八区的时间,比中国早8小时 11 tm = time.gmtime() 12 print(tm

python 学习笔记 14 -- 常用的时间模块之datetime

书接上文,前面我们讲到<常用的时间模块之time>,这次我们学习datetime -- 日期和时间值管理模块 使用apihelper 查看datetime 模块,我们可以看到简单的几项: date       ---  日期对象,结构为date(year, month, day) time       ---  时间值对象,结构为 time([hour[, minute[, second[, microsecond[, tzinfo]]]]]).时间对象所有的参数都是可选的.tzinfo 可以

Python时间模块datetime用法

时间模块datetime是python内置模块,datetime是Python处理日期和时间的标准库. 1,导入时间模块 from datetime import datetime 2,实例 from datetime import datetime   now = datetime.now() # 获取当前datetime   print(now) 3,时间转换,时间转时间戳,时间戳转时间 datetime转换为timestamp >>> from datetime import da

Python学习笔记-安装MySQLdb模块

模块下载地址: MySQL-python 1.2.3 for Windows and Python 2.7, 32bit and 64bit versions http://www.codegood.com/archives/129 直接点击安装exe即可,如果缺少dll文件,可以百度下载相关dll文件. Python学习笔记-安装MySQLdb模块

python 学习_第四模块 并发编程(多线程)

python 学习_第四模块 并发编程(多线程) 1  开启线程方式 from threading import Thread import time def say(name): time.sleep(2) print("%s hello"%name) if __name__ =="__main__": t = Thread(target=say,args=("alex",)) t.start() print("主线程")

python 时间模块datetime

datetime模块用于是date和time模块的合集,datetime有两个常量,MAXYEAR和MINYEAR,分别是9999和1. datetime模块定义了5个类,分别是 1.datetime.date:表示日期的类 2.datetime.datetime:表示日期时间的类 3.datetime.time:表示时间的类 4.datetime.timedelta:表示时间间隔,即两个时间点的间隔 5.datetime.tzinfo:时区的相关信息 一.首先看一下datetime.date类