博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python3---获取延迟、提前的时间、日期---datetime、time
阅读量:2392 次
发布时间:2019-05-10

本文共 4113 字,大约阅读时间需要 13 分钟。

文章目录

0.年月日时分秒------指令代码

指令 解释 例子
%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
%% 文字’%’字符。 %

1.获取年、月、日、时、分、秒组合的字符串

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.002587
datetime.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'

2.根据当前时间获取:延迟的时间、提前的时间

1.获取延迟的时间

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

2.获取提前的时间

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

3.字符串格式的转换—time

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'

4.将字符串转换为延迟、提前的字符串

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

重点:

5.时间大小的比较

其实时间的字符串,在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/

你可能感兴趣的文章
zoj 1745 Are We There Yet?
查看>>
UVA100 The 3n + 1 problem
查看>>
hdu1754 I Hate It
查看>>
hdu 1166 敌兵布阵(求区间的和,单节点更新)
查看>>
hiho一下 第四十四周 题目1 : 博弈游戏·Nim游戏
查看>>
poj2299 Ultra-QuickSort(线段树计数问题)
查看>>
poj3264 Balanced Lineup(求区间的最大值与最小值之差)
查看>>
hdu4565 So Easy!(矩阵快速幂)
查看>>
poj2528 Mayor's posters(线段树,离散化)
查看>>
线段树多lazy-tag(两个)
查看>>
hdu4578(三个更新操作,三个求值操作)
查看>>
并查集(初级)小结
查看>>
Treap
查看>>
相似图片搜索——感知哈希算法
查看>>
编译原理 词法分析
查看>>
计算机系统结构 计算机系统结构的基本概念
查看>>
计算机系统结构 计算机指令集结构
查看>>
计算机系统结构 输入/输出系统
查看>>
信息安全技术及应用 常规加密技术
查看>>
02-线性结构1 两个有序链表序列的合并
查看>>