python时间和日期操作(datetime和monthrange,timedelta)

举报
建帅小伙儿 发表于 2022/09/25 02:56:49 2022/09/25
【摘要】 datetime和monthrange,timedelta # coding=utf-8""" @Project :pachong-master @File :time_test.py @Author :gaojs @Date :2022/7/10 15:50 @Blogs :...

datetime和monthrange,timedelta


   
  1. # coding=utf-8
  2. """
  3. @Project :pachong-master
  4. @File :time_test.py
  5. @Author :gaojs
  6. @Date :2022/7/10 15:50
  7. @Blogs : https://www.gaojs.com.cn
  8. """
  9. import time
  10. from datetime import datetime, timedelta
  11. # 获取某个月共有多少天
  12. from calendar import monthrange
  13. def print_time():
  14. """
  15. print函数测试用时
  16. :return:
  17. """
  18. time.sleep(5)
  19. print('我是一名合格的测试工程师!')
  20. def all_func_time():
  21. """
  22. 程序或者函数用时
  23. :return:
  24. """
  25. start = time.time()
  26. print_time()
  27. end = time.time()
  28. print(f'调用test_print_time函数,花费时间 {start - end} ')
  29. def get_current_time():
  30. """
  31. 获取当前时间:
  32. 2022-07-10 15:59:55.724610
  33. :return:
  34. """
  35. print(str(datetime.now()))
  36. # 指定输出的时间格式:22-07-10 16:03:20
  37. finaldate = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
  38. print(f'**************finaldate是 {finaldate} ****************')
  39. # 也可以使用time类库来格式化显示字符串 2022-07-10 16-06-13
  40. local_time = time.strftime('%Y-%m-%d %H-%M-%S', time.localtime())
  41. print(f'**************localtime是 {local_time} ****************')
  42. # 字符串时间转化为整数时间 1657440200
  43. secondall = int(time.mktime(time.strptime('2022-07-10 16:03:20', '%Y-%m-%d %H:%M:%S')))
  44. print(f'**************secondall是 {secondall} ****************')
  45. # 数字表示的时间转化为字符串表示
  46. data_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(1657440200))
  47. print(f'**************data_time是 {data_time} ****************')
  48. def time_year():
  49. """
  50. datetime.now()学习
  51. :return:
  52. """
  53. datelist = datetime.now().year, datetime.now().month, datetime.now().day
  54. # (2022, 7, 10)
  55. print(datelist)
  56. timelist = datetime.now().hour, datetime.now().minute, datetime.now().second
  57. # (16, 19, 25)
  58. print(timelist)
  59. # 毫秒
  60. micro_time = datetime.now().microsecond
  61. # 149593
  62. print(micro_time)
  63. # 获取当前是星期几
  64. week_time = datetime.now().weekday()
  65. # 今天是星期6
  66. print(f'今天是星期{week_time} ')
  67. def get_weekday():
  68. """
  69. 给定时间日期对应星期几 :历史上的 2022-08-25 是星期 3
  70. :return:
  71. """
  72. test_day = '2022-08-25'
  73. # 先把字符串转换成datetime对象
  74. week_day = datetime.strptime(test_day, '%Y-%m-%d')
  75. # 获取星期几
  76. result = week_day.weekday()
  77. print(f'历史上的 {test_day} 是星期 {result} ')
  78. def time_before_or_after():
  79. """
  80. 从某个时间点往前或者后推 一段时间:
  81. 历史上的 2022-08-25 ,往后推120 天 是 2022-12-23, 是星期 4
  82. 历史上的 2022-08-25 ,往前推120 天 是 2022-04-27, 是星期 2
  83. :return:
  84. """
  85. test_day = '2022-08-25'
  86. date_day = datetime.strptime(test_day, '%Y-%m-%d').date()
  87. # 往后推 120天
  88. after_date = date_day + timedelta(days=120)
  89. week_date = after_date.weekday()
  90. # 历史上的 2022-08-25 ,往后推120 天 是 2022-12-23, 是星期 4
  91. print(f'************* 历史上的 {test_day} ,往后推120 天 是 {after_date}, 是星期 {week_date} *************')
  92. # 往前推120天
  93. before_date = date_day - timedelta(days=120)
  94. before_week_date = before_date.weekday()
  95. # 历史上的 2022-08-25 ,往前推120 天 是 2022-04-27, 是星期 2
  96. print(f'************* 历史上的 {test_day} ,往前推120 天 是 {before_date}, 是星期 {before_week_date} *************')
  97. def get_month_days():
  98. """
  99. 获取某个月共有多少天:
  100. from calendar import monthrange
  101. # monthrange返回的是元组
  102. # 第一个元素是指定月第一天是星期几
  103. # 第二个元素是指定月有多少天
  104. :return:
  105. """
  106. # 最方便的方法是使用 calendar 模块里面的 函数 :(6, 31)
  107. month_day = monthrange(2022, 5)
  108. # 第一个元素是指定月第一天是星期几, 第二个元素是指定月有多少天(6, 31)
  109. print(month_day)
  110. def get_date_weekday():
  111. """
  112. 获取指定日期那周的周一
  113. :return:
  114. """
  115. test_day = '2022-08-25'
  116. date_day = datetime.strptime(test_day, '%Y-%m-%d').date()
  117. print(date_day.weekday())
  118. monday_weekdate = date_day - timedelta(days=date_day.weekday())
  119. print(f'*****************历史上的这周的周一是 {monday_weekdate} ****************')
  120. if __name__ == '__main__':
  121. # 获取当前时间及格式化时间
  122. get_current_time()
  123. # datetime.now()联系
  124. time_year()
  125. # 给定时间日期对应星期几 :历史上的 2022-08-25 是星期 3
  126. get_weekday()
  127. # 从某个时间点往前或者后推 一段时间:
  128. time_before_or_after()
  129. # 获取某个月共有多少天:
  130. get_month_days()
  131. # 获取指定日期那周的周一
  132. get_date_weekday()

文章来源: blog.csdn.net,作者:懿曲折扇情,版权归原作者所有,如需转载,请联系作者。

原文链接:blog.csdn.net/qq_41332844/article/details/126837416

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。