经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 程序设计 » Python » 查看文章
【13】python time时间模块知识点备查
来源:cnblogs  作者:北鼻coder  时间:2018/10/23 9:24:17  对本文有异议

表示时间的三种形式

  1. # 时间模块

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

总结:

关于三种形式表示时间上的转换图

 

 评测一个程序花费的时间长度(windows为例):

  1. # 比如检测一个程序运行所花的时间大小
  2. time.clock()
  3. sum = 0
  4. for i in range(100000000):
  5. sum += i
  6. print(time.clock())
  7. '''
  8. 输出:
  9. 23.743988065019252
  10. '''

 

 

  1. # datetime 比time 好了很多,提供了更多的接口,更加直观和容易调用
  2. import datetime
  3. # 主要的方法
  4. 模块中的类
  5. datetime 同时有时间和日期
  6. timedelta 用于计算时间的跨度
  7. tzinfo 时区相关
  8. time 时间
  9. date 日期

  1. #__author:"吉*佳"
  2. #date: 2018/10/22 0022
  3. #function:
  4.  
  5. # datetime 比time 好了很多,提供了更多的接口,更加直观和容易调用
  6.  
  7. import datetime
  8. # 主要的方法
  9. '''
  10. 模块中的类
  11. datetime 同时有时间和日期
  12. timedelta 用于计算时间的跨度
  13. tzinfo 时区相关
  14. time 时间
  15. date 日期
  16. '''
  17.  
  18. # 使用:
  19.  
  20. # 1 获取当前时间
  21. nowtime=datetime.datetime.now()
  22. print(nowtime)
  23. print(type(nowtime))
  24. '''
  25. 输出:
  26. 2018-10-22 22:58:31.973017
  27. <class 'datetime.datetime'>
  28. '''
  29.  
  30. # 2 获取指定时间
  31. d2 = datetime.datetime(1994,1,10,10,28,25,111)
  32. print(d2)
  33. '''
  34. 输出:
  35. 1994-01-10 10:28:25.000111
  36. '''
  37.  
  38. # 3 将以上时间(nowtime)转化为 字符串
  39. d3 = nowtime.strftime('%y-%m-%d %H:%M:%S')
  40. print(d3)
  41. print(type(d3))
  42. d31 = nowtime.strftime('%Y-%m-%d %H:%M:%S') #大Y表示四位的年
  43. print(d31)
  44. '''
  45. 输出:
  46. 18-10-22 23:04:35
  47. <class 'str'>
  48. 2018-10-22 23:05:48
  49. '''
  50.  
  51. # 4 将字符串 转化为 datetime类型的
  52. d4 = datetime.datetime.strptime(d3,'%y-%m-%d %H:%M:%S')
  53. print("d4=",d4)
  54. '''
  55. 输出:
  56. d4= 2018-10-22 23:12:14
  57. '''
  58.  
  59. # 5 datetime型是可以做加减运算的
  60. d5 = datetime.datetime(1994,1,10,13,25,48,111)
  61. d6 = datetime.datetime.now()
  62. d= d6-d5
  63. print(d) #打印出间隔的天数和秒数
  64. print(d.days) #打印出间隔的天数
  65. print(d.seconds) #打印出出去整数天外的间隔的秒数
  66.  
  67. print(type(d)) #所属的类型是
  68. '''
  69. 输出:
  70. 9051 days, 9:50:06.403529
  71. 9051
  72. 35406
  73. <class 'datetime.timedelta'>
  74. '''

 

 

 

  1. #__author:"吉*佳"
  2. #date: 2018/10/22 0022
  3. #function:
  4.  
  5. import calendar
  6. # 日历模块
  7.  
  8. # 1 返回指定年内某月的日历信息
  9. print(calendar.month(2018,10))
  10. '''
  11. 输出:
  12. October 2018
  13. Mo Tu We Th Fr Sa Su
  14. 1 2 3 4 5 6 7
  15. 8 9 10 11 12 13 14
  16. 15 16 17 18 19 20 21
  17. 22 23 24 25 26 27 28
  18. 29 30 31
  19. '''
  20.  
  21. # 返回指定某一年的日历
  22. print(calendar.calendar(2018))
  23. '''
  24. 输出:
  25. 2018
  26. January February March
  27. Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
  28. 1 2 3 4 5 6 7 1 2 3 4 1 2 3 4
  29. 8 9 10 11 12 13 14 5 6 7 8 9 10 11 5 6 7 8 9 10 11
  30. 15 16 17 18 19 20 21 12 13 14 15 16 17 18 12 13 14 15 16 17 18
  31. 22 23 24 25 26 27 28 19 20 21 22 23 24 25 19 20 21 22 23 24 25
  32. 29 30 31 26 27 28 26 27 28 29 30 31
  33. April May June
  34. Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
  35. 1 1 2 3 4 5 6 1 2 3
  36. 2 3 4 5 6 7 8 7 8 9 10 11 12 13 4 5 6 7 8 9 10
  37. 9 10 11 12 13 14 15 14 15 16 17 18 19 20 11 12 13 14 15 16 17
  38. 16 17 18 19 20 21 22 21 22 23 24 25 26 27 18 19 20 21 22 23 24
  39. 23 24 25 26 27 28 29 28 29 30 31 25 26 27 28 29 30
  40. 30
  41. July August September
  42. Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
  43. 1 1 2 3 4 5 1 2
  44. 2 3 4 5 6 7 8 6 7 8 9 10 11 12 3 4 5 6 7 8 9
  45. 9 10 11 12 13 14 15 13 14 15 16 17 18 19 10 11 12 13 14 15 16
  46. 16 17 18 19 20 21 22 20 21 22 23 24 25 26 17 18 19 20 21 22 23
  47. 23 24 25 26 27 28 29 27 28 29 30 31 24 25 26 27 28 29 30
  48. 30 31
  49. October November December
  50. Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su
  51. 1 2 3 4 5 6 7 1 2 3 4 1 2
  52. 8 9 10 11 12 13 14 5 6 7 8 9 10 11 3 4 5 6 7 8 9
  53. 15 16 17 18 19 20 21 12 13 14 15 16 17 18 10 11 12 13 14 15 16
  54. 22 23 24 25 26 27 28 19 20 21 22 23 24 25 17 18 19 20 21 22 23
  55. 29 30 31 26 27 28 29 30 24 25 26 27 28 29 30
  56. 31
  57. '''
  58.  
  59. # 返回 判断瑞年与否
  60. print(calendar.isleap(2018))
  61. '''
  62. 输出:
  63. False
  64. '''
  65.  
  66. # 返回这个月的weekday的第一天和月的天数
  67. print(calendar.monthrange(2018,2))
  68. '''
  69. 输出:
  70. (3, 28)
  71. 其中3 代表第一天是从周四开始的,28 代表天数
  72. '''
  73.  
  74. # 返回某个月以每一周为元素的列表
  75. print(calendar.monthcalendar(2018,6))
  76. '''
  77. 输出:
  78. [[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]]
  79. '''

 

 

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号