本文共 4113 字,大约阅读时间需要 13 分钟。
指令 | 解释 | 例子 |
---|---|---|
%y | 年没有世纪作为一个零填充的小数。 | 00, 01, …, 99 |
%-y | 没有世纪作为十进制数的年份。 | 0, 1, …, 99 |
%Y | 以世纪为十进制数的年份。 | 2013, 2019 etc. |
%m | 月作为一个零填充的小数。 | 01, 02, …, 12 |
%-m | 一个十进制的月份。 | 1, 2, …, 12 |
%d | 一个月中的一天作为一个带零填充的小数。 | 01, 02, …, 31 |
%-d | 以十进制数字表示的月份的天数。 | 1, 2, …, 30 |
%H | 小时(24小时时钟)作为一个零填充的小数。 | 00, 01, …, 23 |
%-H | 小时(24小时时钟)是一个十进制数。 | 0, 1, …, 23 |
%M | 分钟作为一个零填充的小数。 | 00, 01, …, 59 |
%-M | 分钟是个小数。 | 0, 1, …, 59 |
%S | 第二个是带零填充的小数。 | 00, 01, …, 59 |
%-S | 第二个是小数。 | 0, 1, …, 59 |
%f | 微秒作为一个十进制数,左边加零。 | 000000 – 999999 |
%a | 缩写工作日的名字。 | Sun, Mon, … |
%A | 完整的工作日的名字。 | Sunday, Monday, … |
%w | 一个十进制的工作日。 | 0, 1, …, 6 |
%b | 缩写月的名字。 | Jan, Feb, …, Dec |
%B | 全月的名字。 | January, February, … |
%I | 小时(12小时时钟)作为一个零填充的小数。 | 01, 02, …, 12 |
%-I | 小时(12小时时钟)作为一个十进制数。 | 1, 2, … 12 |
%p | 场所的上午或下午。 | AM, PM |
%z | UTC偏移量的形式是+HHMM或-HHMM。 | |
%Z | 时区名称。 | |
%j | 一年中的一天,作为一个零填充的小数。 | 001, 002, …, 366 |
%-j | 以十进制数表示的一年中的一天。 | 1, 2, …, 366 |
%U | 全年的周数(星期日为一周的第一天)。新年第一个星期日之前的所有日子都被认为是在第0周。 | 00, 01, …, 53 |
%W | 全年的周数(星期一为一周的第一天)。新年第一个星期一之前的所有日子都被认为是在第0周。 | 00, 01, …, 53 |
%c | 区域设置的适当日期和时间表示。 | Mon Sep 30 07:06:05 2013 |
%x | 区域设置的适当日期表示。 | 09/30/13 |
%X | 区域设置的适当时间表示。 | 07:06:05 |
%% | 文字’%’字符。 | % |
step1 : 先获取具体时间, datetime类的数据
import datetime, timenow_str = datetime.datetime.now()print(repr(now_str))print(now_str)print(type(now_str))date_str = datetime.datetime.today()print(repr(date_str))print(date_str)
datetime.datetime(2021, 1, 29, 14, 33, 26, 2587)2021-01-29 14:33:26.002587datetime.datetime(2021, 1, 29, 14, 33, 26, 2587)2021-01-29 14:33:26.002587
step2 : 把datetime类的数据,转换为不同的呈现格式
import datetimenow_str = datetime.datetime.now()today_str = now_str.strftime("%Y---%m---%d")right_now_time = now_str.strftime('%H:%M:%S:%f')full_time = now_str.strftime("%Y-%m-%d %H:%M:%S:%f")print(repr(today_str))print(repr(right_now_time))print(repr(full_time))
'2021---01---29''14:43:03:339366''2021-01-29 14:43:03:339366'
import datetimenow_str = datetime.datetime.now()add_hour = (now_str+datetime.timedelta(hours=5))add_minite = (now_str+datetime.timedelta(minutes=5))add_second = (now_str+datetime.timedelta(seconds=5))print(now_str)print(add_hour)print(add_minite)print(add_second)
2021-01-29 14:51:07.577980 # 当前时间2021-01-29 19:51:07.5779802021-01-29 14:56:07.5779802021-01-29 14:51:12.577980
import datetimenow_str = datetime.datetime.now()add_hour = (now_str+datetime.timedelta(hours=-5))add_minite = (now_str+datetime.timedelta(minutes=-5))add_second = (now_str+datetime.timedelta(seconds=-5))print(now_str)print(add_hour)print(add_minite)print(add_second)
2021-01-29 14:56:51.782493 # 当前时间2021-01-29 09:56:51.7824932021-01-29 14:51:51.7824932021-01-29 14:56:46.782493
step1:时间字符串转为time.struct_time类
import timedt = "20210129182158588"timeArray = time.strptime(dt, "%Y%m%d%H%M%S%f")print(type(timeArray))print(timeArray)
time.struct_time(tm_year=2021, tm_mon=1, tm_mday=29, tm_hour=18, tm_min=21, tm_sec=58, tm_wday=4, tm_yday=29, tm_isdst=-1)
step2:将time.struct_time类转换为时间字符串
import timedt = "20210129182158588"timeArray = time.strptime(dt, "%Y%m%d%H%M%S%f")customTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray) print(repr(customTime))
注意:
- 此处的strftime函数,只支持到秒、微妙不支持(%f)
'2021-01-29 18:21:58'
import time,datetimedt = "20210129182158588"timeArray = time.strptime(dt, "%Y%m%d%H%M%S%f")customTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray) # 将无格式的字符串转为有格式的字符串datetime_str = datetime.datetime.fromisoformat(customTime) # 将字符串转为datetime类型print(type(datetime_str))print(datetime_str)re_time = datetime_str + datetime.timedelta(seconds=5) # 通过datetime类型,延迟时间# re_time = datetime_str + datetime.timedelta(seconds=-5) # 时间提前5sprint(re_time)
2021-01-29 18:21:582021-01-29 18:22:03 # 延迟了5s
重点:
其实时间的字符串,在python中是可以直接比较大小的
start_time = "15:50:00"end_time = "15:59:00"time_list = ["15:52:52", "15:59:59", "15:56:56"]for time_str in time_list: try: print("time=========>", time_str) assert start_time <= time_str <= end_time except: print("error------time-----", time_str) continue
time=========> 15:52:52time=========> 15:59:59error------time----- 15:59:59time=========> 15:56:56
转载地址:http://kxeab.baihongyu.com/