记录几个日常工作中常用的时间日期处理。
Python 的 datetime 模块包含可用于处理日期和时间值的方法
import datetime
1,python获取今天/明天/昨天的日期
# <class 'datetime.date'> today=datetime.date.today() # 2022-10-13 yesterday = today + datetime.timedelta(days=-1)) # 2022-10-12 tomorrow = today + datetime.timedelta(days=1)) # 2022-10-14 # 当前时间 now = datetime.datetime.now() # <class 'datetime.datetime'> 2024-04-01 10:49:11.464192 now1 = now.strftime("%Y-%m-%d %H:%M:%S") # <class 'str'> 2024-04-01 10:49:11
2,获取当天零点
# # 获取今天零点(当天0点时间) now = datetime.datetime.now() # <class 'datetime.datetime'> 2024-04-01 10:33:20.658119 yes_time = now + datetime.timedelta(days=-1) # <class 'datetime.datetime'> 2024-03-31 11:09:35.264467 # 方式1:返回<class 'datetime.datetime'> today_zero = now - datetime.timedelta(hours=now.hour, minutes=now.minute, seconds=now.second,microseconds=now.microsecond) # <class 'datetime.datetime'> 2024-04-01 00:00:00 # 方式2:返回<class 'str'> today_zero = now.strftime('%Y-%m-%d 00:00:00') # <class 'str'> 2024-04-01 00:00:00
3,<class 'datetime.date'>与<class 'datetime.datetime'>互转
#定义date # # date转换成datetime today_d = datetime.date.today() # <class 'datetime.date'> 2024-04-01 # today_dt = datetime.datetime.combine(today_d ,datetime.time()) # <class 'datetime.datetime'> 2024-04-01 00:00:00 today_dt = datetime.datetime.strptime(str(today_d),'%Y-%m-%d') # <class 'datetime.datetime'> 2024-04-01 00:00:00 # datetime转换date today_copy = today_dt.date() # <class 'datetime.date'> 2024-04-01
2,python时区转化加减
经常使用到的场景是时区之间的转化。比如UTC+0时间转北京时间等,北京时间是东八区(UTC+8)
time_Arr_utc8 = time_Arr_utc0+datetime.timedelta(hours=8)
3,python时间加减
一场足球比赛大致是105分钟,所以知道比赛开始时间,那么结束时间就是基础上+105分钟;
startime='2022-12-27 01:30:00' endDate=startime+datetime.timedelta(minutes=105) # 2022-12-27 03:15:00
4,python日期时间格式化
4.1,strftime 将日期转换为字符串
国外的日期时间显示方式和国内的又少些的不同,国内一般是“年-月-日 时间”,国外一般是“日-月-年 时间”
startime='2022-12-27 01:30:00' # 字符串 en_full_time = datetime.datetime.strptime(time_str, '%Y-%m-%d %H:%M:%S') # 字符串转时间 en_short_time = en_full_time.strftime("%d %b %H:%M") # 27 Dec 01:30
strftime 方法格式化日期的指令如下:
%b: 返回月份名称的前三个字符。在我们的例子中,它返回 “Sep”。
%d: 返回本月的日期,从 1 到 31。在我们的例子中,它返回 “15”。
%Y: 返回四位数格式的年份。在我们的例子中,它返回 “2018”。
%H: 返回小时。在我们的例子中,它返回 “00”。
%M: 返回分钟,从 00 到 59。在我们的例子中,它返回 “00”。
%S: 返回秒,从 00 到 59。在我们的例子中,它返回 “00”。
%a: 返回工作日的前三个字符,例如 Wed。
%A: 返回返回工作日的全名,例如 Wednesday。
%B: 返回月份的全名,例如 September。
%w: 返回工作日作为数字,从 0 到 6,周日为 0。
%m: 将月份作为数字返回,从 01 到 12。
%p: 返回 AM/PM 标识。
%y: 返回两位数格式的年份,例如,”18“ 而不是 ”2018“。
%f: 返回从 000000 到 999999 的微秒。
%Z: 返回时区。
%z: 返回 UTC 偏移量。
%j: 返回当年的日期编号,从 001 到 366。
%W: 返回年份的周数,从 00 到 53。星期一被记为一周第一天。
%U: 返回年份的周数,从 00 到 53。星期日被记为一周第一天。
%c: 返回本地日期和时间版本。
%x: 返回本地日期版本。
%X: 返回本地时间版本。
4.2,strptime 将字符串转换成日期
from datetime import datetime str = '9-15-18' date_object = datetime.strptime(str, '%m-%d-%y') # 2018-09-15 00:00:00
5,获取年月日
from datetime import date # 创建一个日期对象 today = date.today() # 获取年份 year = today.year # 获取月份 month = today.month # 获取日 day = today.day print("当前日期:", today) print("年份:", year) print("月份:", month) print("日:", day)
还没有评论,来说两句吧...