
表示时间的三种形式
- # 时间模块
'''
UTC(世界协调时间):格林尼治天文时间,世界标准时间,在中国来说是UTC+8
DST(夏令时):是一种节约能源而人为规定时间制度,在夏季调快1个小时
时间的表示形式:
1、时间戳
以整型或浮点型表示时间的一个以秒为单位的时间间隔。这个时间间隔的基础值是从1970年1月1日领带开始算起
2、元组
一种Python的数据结构表示,这个元组有9个整型内容
year
month
day
hours
minutes
seconds
weekday
Julia day
flag (1 或 -1 或0) 0表示正常时间 1 表示DST时间 -1需要判断
3、格式化字符串
%a 本地(locale)简化星期名称
%A 本地完整星期名称
%b 本地简化月份名称
%B 本地完整月份名称
%c 本地相应的日期和时间表示
%d 一个月中的第几天(01 - 31)
%H 一天中的第几个小时(24小时制,00 - 23)
%I 第几个小时(12小时制,01 - 12)
%j 一年中的第几天(001 - 366)
%m 月份(01 - 12)
%M 分钟数(00 - 59)
%p 本地am或者pm的相应符
%S 秒(01 - 61)
%U 一年中的星期数。(00 - 53星期天是一个星期的开始。)第一个星期天之前的所有天数都放在第0周
%w 一个星期中的第几天(0 - 6,0是星期天)
%W 和%U基本相同,不同的是%W以星期一为一个星期的开始。
%x 本地相应日期
%X 本地相应时间
%y 去掉世纪的年份(00 - 99)
%Y 完整的年份
%Z 时区的名字(如果不存在为空字符)
%% ‘%’字符
-
- 1 #__author:"吉*佳"
- 2 #date: 2018/10/22 0022
- 3 #function:
- 4
- 5 import time
- 6
- 7 # 时间模块
- 8
- 9 '''
- 10 UTC(世界协调时间):格林尼治天文时间,世界标准时间,在中国来说是UTC+8
- 11 DST(夏令时):是一种节约能源而人为规定时间制度,在夏季调快1个小时
- 12
- 13
- 14
- 15 时间的表示形式:
- 16 1、时间戳
- 17 以整型或浮点型表示时间的一个以秒为单位的时间间隔。这个时间间隔的基础值是从1970年1月1日领带开始算起
- 18 2、元组
- 19 一种Python的数据结构表示,这个元组有9个整型内容
- 20 year
- 21 month
- 22 day
- 23 hours
- 24 minutes
- 25 seconds
- 26 weekday
- 27 Julia day
- 28 flag (1 或 -1 或0) 0表示正常时间 1 表示DST时间 -1需要判断
- 29
- 30 3、格式化字符串
- 31 %a 本地(locale)简化星期名称
- 32 %A 本地完整星期名称
- 33 %b 本地简化月份名称
- 34 %B 本地完整月份名称
- 35 %c 本地相应的日期和时间表示
- 36 %d 一个月中的第几天(01 - 31)
- 37 %H 一天中的第几个小时(24小时制,00 - 23)
- 38 %I 第几个小时(12小时制,01 - 12)
- 39 %j 一年中的第几天(001 - 366)
- 40 %m 月份(01 - 12)
- 41 %M 分钟数(00 - 59)
- 42 %p 本地am或者pm的相应符
- 43 %S 秒(01 - 61)
- 44 %U 一年中的星期数。(00 - 53星期天是一个星期的开始。)第一个星期天之前的所有天数都放在第0周
- 45 %w 一个星期中的第几天(0 - 6,0是星期天)
- 46 %W 和%U基本相同,不同的是%W以星期一为一个星期的开始。
- 47 %x 本地相应日期
- 48 %X 本地相应时间
- 49 %y 去掉世纪的年份(00 - 99)
- 50 %Y 完整的年份
- 51 %Z 时区的名字(如果不存在为空字符)
- 52 %% ‘%’字符
- 53
- 54 2017-07-28 14:49:30
- 55 '''
- 56
- 57 # 1 返回当前时间的时间戳,浮点数形式,不需要参数
- 58 c = time.time()
- 59 print(c)
- 60 '''
- 61 输出:时间戳
- 62 1540214592.0838583
- 63 '''
- 64
- 65 #将时间戳转为UTC时间元组(是世界标准时间,不是北京时间)
- 66 t = time.gmtime(c)
- 67 print(t)
- 68 '''
- 69 输出:世界标准时间
- 70 time.struct_time(tm_year=2018, tm_mon=10, tm_mday=22, tm_hour=13, tm_min=23, tm_sec=12, tm_wday=0, tm_yday=295, tm_isdst=0)
- 71
- 72 '''
- 73
- 74 #将时间戳转为本地时间元组
- 75 b = time.localtime(c)
- 76 print(b)
- 77 '''
- 78 输出:
- 79 time.struct_time(tm_year=2018, tm_mon=10, tm_mday=22, tm_hour=21, tm_min=23, tm_sec=12, tm_wday=0, tm_yday=295, tm_isdst=0)
- 80 '''
- 81
- 82
- 83
- 84 #将本地时间元组转成时间戳
- 85 m = time.mktime(b)
- 86 print(m)
- 87 '''
- 88 输出:
- 89 1540216089.0
- 90 '''
- 91
- 92
- 93 #将时间元组转成字符串
- 94 s = time.asctime(b)
- 95 print(s)
- 96 '''
- 97 输出:
- 98 Mon Oct 22 22:08:17 2018
- 99 '''
- 100 #将时间戳转为字符串 time.asctime(time.localtime(time.time()))
- 101 p = time.ctime(c)
- 102 print(p)
- 103 '''
- 104 输出:
- 105 Mon Oct 22 22:08:17 2018
- 106 '''
- 107
- 108 #将时间元组转换成给定格式的字符串,参数2为时间元组,如果没有参数2,默认转当前时间
- 109 q = time.strftime("%Y-%m-%d %H:%M:%S", b)
- 110 print(q)
- 111 print(type(q))
- 112 '''
- 113 输出:
- 114 2018-10-22 22:08:17
- 115 <class 'str'>
- 116 '''
- 117
- 118 #将时间字符串转为时间元组
- 119 w = time.strptime(q, "%Y-%m-%d %X")
- 120 print(w)
- 121 '''
- 122 输出:
- 123 time.struct_time(tm_year=2018, tm_mon=10, tm_mday=22, tm_hour=22, tm_min=10, tm_sec=58, tm_wday=0, tm_yday=295, tm_isdst=-1)
- 124
- 125 '''
- 126
- 127
- 128 #延迟一个时间,整型或者浮点型
- 129 #time.sleep(4)
- 130
- 131
- 132 #返回当前程序的cup执行时间
- 133 #Unix形同始终返回全部的运行时间
- 134 #windows从第二次开始,都是以第一个调用此函数的开始间戳作为基数
- 135 y1 = time.clock()
- 136 print("%d" % y1)
- 137 time.sleep(2)
- 138 y2 = time.clock()
- 139 print("%d" % y2)
- 140 time.sleep(2)
- 141 y3 = time.clock()
- 142 print("%d" % y3)
- 143
- 144 '''
- 145 输出:
- 146 0
- 147 2
- 148 4
- 149
- 150 '''
总结:
关于三种形式表示时间上的转换图

评测一个程序花费的时间长度(windows为例):
- # 比如检测一个程序运行所花的时间大小
- time.clock()
- sum = 0
- for i in range(100000000):
- sum += i
- print(time.clock())
- '''
- 输出:
- 23.743988065019252
- '''

- # datetime 比time 好了很多,提供了更多的接口,更加直观和容易调用
- import datetime
- # 主要的方法
- 模块中的类
- datetime 同时有时间和日期
- timedelta 用于计算时间的跨度
- tzinfo 时区相关
- time 时间
- date 日期
- #__author:"吉*佳"
- #date: 2018/10/22 0022
- #function:
-
- # datetime 比time 好了很多,提供了更多的接口,更加直观和容易调用
-
- import datetime
- # 主要的方法
- '''
- 模块中的类
- datetime 同时有时间和日期
- timedelta 用于计算时间的跨度
- tzinfo 时区相关
- time 时间
- date 日期
- '''
-
- # 使用:
-
- # 1 获取当前时间
- nowtime=datetime.datetime.now()
- print(nowtime)
- print(type(nowtime))
- '''
- 输出:
- 2018-10-22 22:58:31.973017
- <class 'datetime.datetime'>
- '''
-
- # 2 获取指定时间
- d2 = datetime.datetime(1994,1,10,10,28,25,111)
- print(d2)
- '''
- 输出:
- 1994-01-10 10:28:25.000111
- '''
-
- # 3 将以上时间(nowtime)转化为 字符串
- d3 = nowtime.strftime('%y-%m-%d %H:%M:%S')
- print(d3)
- print(type(d3))
- d31 = nowtime.strftime('%Y-%m-%d %H:%M:%S') #大Y表示四位的年
- print(d31)
- '''
- 输出:
- 18-10-22 23:04:35
- <class 'str'>
- 2018-10-22 23:05:48
- '''
-
- # 4 将字符串 转化为 datetime类型的
- d4 = datetime.datetime.strptime(d3,'%y-%m-%d %H:%M:%S')
- print("d4=",d4)
- '''
- 输出:
- d4= 2018-10-22 23:12:14
- '''
-
- # 5 datetime型是可以做加减运算的
- d5 = datetime.datetime(1994,1,10,13,25,48,111)
- d6 = datetime.datetime.now()
- d= d6-d5
- print(d) #打印出间隔的天数和秒数
- print(d.days) #打印出间隔的天数
- print(d.seconds) #打印出出去整数天外的间隔的秒数
-
- print(type(d)) #所属的类型是
- '''
- 输出:
- 9051 days, 9:50:06.403529
- 9051
- 35406
- <class 'datetime.timedelta'>
- '''

- #__author:"吉*佳"
- #date: 2018/10/22 0022
- #function:
-
- import calendar
- # 日历模块
-
- # 1 返回指定年内某月的日历信息
- print(calendar.month(2018,10))
- '''
- 输出:
- October 2018
- Mo Tu We Th Fr Sa Su
- 1 2 3 4 5 6 7
- 8 9 10 11 12 13 14
- 15 16 17 18 19 20 21
- 22 23 24 25 26 27 28
- 29 30 31
- '''
-
- # 返回指定某一年的日历
- print(calendar.calendar(2018))
- '''
- 输出:
- 2018
- January February March
- Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
- 1 2 3 4 5 6 7 1 2 3 4 1 2 3 4
- 8 9 10 11 12 13 14 5 6 7 8 9 10 11 5 6 7 8 9 10 11
- 15 16 17 18 19 20 21 12 13 14 15 16 17 18 12 13 14 15 16 17 18
- 22 23 24 25 26 27 28 19 20 21 22 23 24 25 19 20 21 22 23 24 25
- 29 30 31 26 27 28 26 27 28 29 30 31
- April May June
- Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
- 1 1 2 3 4 5 6 1 2 3
- 2 3 4 5 6 7 8 7 8 9 10 11 12 13 4 5 6 7 8 9 10
- 9 10 11 12 13 14 15 14 15 16 17 18 19 20 11 12 13 14 15 16 17
- 16 17 18 19 20 21 22 21 22 23 24 25 26 27 18 19 20 21 22 23 24
- 23 24 25 26 27 28 29 28 29 30 31 25 26 27 28 29 30
- 30
- July August September
- Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
- 1 1 2 3 4 5 1 2
- 2 3 4 5 6 7 8 6 7 8 9 10 11 12 3 4 5 6 7 8 9
- 9 10 11 12 13 14 15 13 14 15 16 17 18 19 10 11 12 13 14 15 16
- 16 17 18 19 20 21 22 20 21 22 23 24 25 26 17 18 19 20 21 22 23
- 23 24 25 26 27 28 29 27 28 29 30 31 24 25 26 27 28 29 30
- 30 31
- October November December
- Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
- 1 2 3 4 5 6 7 1 2 3 4 1 2
- 8 9 10 11 12 13 14 5 6 7 8 9 10 11 3 4 5 6 7 8 9
- 15 16 17 18 19 20 21 12 13 14 15 16 17 18 10 11 12 13 14 15 16
- 22 23 24 25 26 27 28 19 20 21 22 23 24 25 17 18 19 20 21 22 23
- 29 30 31 26 27 28 29 30 24 25 26 27 28 29 30
- 31
- '''
-
- # 返回 判断瑞年与否
- print(calendar.isleap(2018))
- '''
- 输出:
- False
- '''
-
- # 返回这个月的weekday的第一天和月的天数
- print(calendar.monthrange(2018,2))
- '''
- 输出:
- (3, 28)
- 其中3 代表第一天是从周四开始的,28 代表天数
- '''
-
- # 返回某个月以每一周为元素的列表
- print(calendar.monthcalendar(2018,6))
- '''
- 输出:
- [[0, 0, 0, 0, 1, 2, 3], [4, 5, 6, 7, 8, 9, 10], [11, 12, 13, 14, 15, 16, 17], [18, 19, 20, 21, 22, 23, 24], [25, 26, 27, 28, 29, 30, 0]]
- '''
