python时间和日期操作(datetime和monthrange,timedelta)
【摘要】
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
-
# coding=utf-8
-
"""
-
@Project :pachong-master
-
@File :time_test.py
-
@Author :gaojs
-
@Date :2022/7/10 15:50
-
@Blogs : https://www.gaojs.com.cn
-
"""
-
import time
-
from datetime import datetime, timedelta
-
# 获取某个月共有多少天
-
from calendar import monthrange
-
-
-
def print_time():
-
"""
-
print函数测试用时
-
:return:
-
"""
-
time.sleep(5)
-
print('我是一名合格的测试工程师!')
-
-
-
def all_func_time():
-
"""
-
程序或者函数用时
-
:return:
-
"""
-
start = time.time()
-
print_time()
-
end = time.time()
-
print(f'调用test_print_time函数,花费时间 {start - end} ')
-
-
-
def get_current_time():
-
"""
-
获取当前时间:
-
2022-07-10 15:59:55.724610
-
:return:
-
"""
-
print(str(datetime.now()))
-
# 指定输出的时间格式:22-07-10 16:03:20
-
finaldate = datetime.now().strftime('%Y-%m-%d %H:%M:%S')
-
print(f'**************finaldate是 {finaldate} ****************')
-
# 也可以使用time类库来格式化显示字符串 2022-07-10 16-06-13
-
local_time = time.strftime('%Y-%m-%d %H-%M-%S', time.localtime())
-
print(f'**************localtime是 {local_time} ****************')
-
# 字符串时间转化为整数时间 1657440200
-
secondall = int(time.mktime(time.strptime('2022-07-10 16:03:20', '%Y-%m-%d %H:%M:%S')))
-
print(f'**************secondall是 {secondall} ****************')
-
# 数字表示的时间转化为字符串表示
-
data_time = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(1657440200))
-
print(f'**************data_time是 {data_time} ****************')
-
-
-
def time_year():
-
"""
-
datetime.now()学习
-
:return:
-
"""
-
datelist = datetime.now().year, datetime.now().month, datetime.now().day
-
# (2022, 7, 10)
-
print(datelist)
-
timelist = datetime.now().hour, datetime.now().minute, datetime.now().second
-
# (16, 19, 25)
-
print(timelist)
-
# 毫秒
-
micro_time = datetime.now().microsecond
-
# 149593
-
print(micro_time)
-
# 获取当前是星期几
-
week_time = datetime.now().weekday()
-
# 今天是星期6
-
print(f'今天是星期{week_time} ')
-
-
-
def get_weekday():
-
"""
-
给定时间日期对应星期几 :历史上的 2022-08-25 是星期 3
-
:return:
-
"""
-
test_day = '2022-08-25'
-
# 先把字符串转换成datetime对象
-
week_day = datetime.strptime(test_day, '%Y-%m-%d')
-
# 获取星期几
-
result = week_day.weekday()
-
print(f'历史上的 {test_day} 是星期 {result} ')
-
-
-
def time_before_or_after():
-
"""
-
从某个时间点往前或者后推 一段时间:
-
历史上的 2022-08-25 ,往后推120 天 是 2022-12-23, 是星期 4
-
历史上的 2022-08-25 ,往前推120 天 是 2022-04-27, 是星期 2
-
:return:
-
"""
-
test_day = '2022-08-25'
-
date_day = datetime.strptime(test_day, '%Y-%m-%d').date()
-
# 往后推 120天
-
after_date = date_day + timedelta(days=120)
-
week_date = after_date.weekday()
-
# 历史上的 2022-08-25 ,往后推120 天 是 2022-12-23, 是星期 4
-
print(f'************* 历史上的 {test_day} ,往后推120 天 是 {after_date}, 是星期 {week_date} *************')
-
# 往前推120天
-
before_date = date_day - timedelta(days=120)
-
before_week_date = before_date.weekday()
-
# 历史上的 2022-08-25 ,往前推120 天 是 2022-04-27, 是星期 2
-
print(f'************* 历史上的 {test_day} ,往前推120 天 是 {before_date}, 是星期 {before_week_date} *************')
-
-
-
def get_month_days():
-
"""
-
获取某个月共有多少天:
-
from calendar import monthrange
-
# monthrange返回的是元组
-
# 第一个元素是指定月第一天是星期几
-
# 第二个元素是指定月有多少天
-
:return:
-
"""
-
# 最方便的方法是使用 calendar 模块里面的 函数 :(6, 31)
-
month_day = monthrange(2022, 5)
-
# 第一个元素是指定月第一天是星期几, 第二个元素是指定月有多少天(6, 31)
-
print(month_day)
-
-
-
def get_date_weekday():
-
"""
-
获取指定日期那周的周一
-
:return:
-
"""
-
test_day = '2022-08-25'
-
date_day = datetime.strptime(test_day, '%Y-%m-%d').date()
-
print(date_day.weekday())
-
monday_weekdate = date_day - timedelta(days=date_day.weekday())
-
print(f'*****************历史上的这周的周一是 {monday_weekdate} ****************')
-
-
-
if __name__ == '__main__':
-
# 获取当前时间及格式化时间
-
get_current_time()
-
# datetime.now()联系
-
time_year()
-
# 给定时间日期对应星期几 :历史上的 2022-08-25 是星期 3
-
get_weekday()
-
# 从某个时间点往前或者后推 一段时间:
-
time_before_or_after()
-
# 获取某个月共有多少天:
-
get_month_days()
-
# 获取指定日期那周的周一
-
get_date_weekday()
文章来源: blog.csdn.net,作者:懿曲折扇情,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/qq_41332844/article/details/126837416
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)