一、打印当前日期
import time
time.strftime('%Y-%m-%d %H:%M:%S',time.localtime())
最常用的日期转换,打印当前时间,或获取当前时间输出字符串,UI自动化常用
time.strptime('2022-12-18 17:14:44','%Y-%m-%d %H:%M:%S') 日期字符串转换为time.struct_time类型数据,
一般用于一个标准格式的time_str 转换成另一个标准格式的time_str的中间日期格式过渡
参数见最后
二、日期的加减运算
import datetime
from dateutil.relativedelta import relativedelta as rel
now_str = datetime.datetime.now().strftime("%Y-%m-%d") # 当前时间转换为字符串格式
now_date = datetime.datetime.strptime(now_str,"%Y-%m-%d") # 字符串格式转datetime
date_time = now_date+rel(years=+1,months=-2,days=+3) # 参数都是复数形式,单身形式不是计算,是赋值;参数值可正可负
一般情况下,通过python读取数据库取出的日期格式,都是datetime类型,可以直接进行运算和字符串格式转换
参数:
%a 星期几的简写 Mon / Tue / Wed / Thu / Fri / Sat / Sun
%A 星期几的全称 Monday / Tuesday / Wednesday / Thursday / Friday / Saturday / Sunday
%b 月分的简写 Jan / Feb / Mar / Apr / May / Jun / Jul / Aug / Sep / Oct / Nov / Dec
%B 月份的全称 January / February / March / April / May / June / July / September / October / November / December
%c 标准的日期的时间串 Sun Dec 18 15:14:44 2022
%C 年份的后两位数字(我的输入年是2022,但是返回的结果是20???)
%d 十进制表示的每月的第几天 (常用)
%D 月/天/年 12/18/22
%e 在两字符域中,十进制表示的每月的第几天 (没看出和%d的区别???)
%F 年-月-日 2022-12-18
%g 年份的后两位数字,使用基于周的年 22
%G 年分,使用基于周的年 2022
%h 简写的月份名 (和%b有啥区别?)
%H 24小时制的小时(常用)
%I 12小时制的小时 03 只转换成12小时制表示,没有am 或pm标识,和%p共同使用
%j 十进制表示的每年的第几天
%m 十进制表示的月份 (常用)
%M 十时制表示的分钟数 (常用)
%n 新行符 换行
%p 本地的AM或PM的等价显示 这个和%I共同使用效果更佳
%r 12小时的时间 05:14:44 PM (相当于%I:%M:%S %p的格式)
%R 显示小时和分钟:hh:mm 17:14
%S 十进制的秒数 (常用)
%t 水平制表符 (得,和%n凑一对)
%T 显示时分秒:hh:mm:ss 17:14:44(常用)
%u 每周的第几天,星期一为第一天 (值从0到6,星期一为0) (实测python3.8值从1到7,星期一为1)
%U 第年的第几周,把星期日做为第一天(值从0到53)
%w 十进制表示的星期几(值从0到6,星期天为0)
%W 每年的第几周,把星期一做为第一天(值从0到53)
%x 标准的日期串 12/18/22 (和%D有啥区别???)
%X 标准的时间串 17:14:44 (和%T有啥区别???)
%y 不带世纪的十进制年份(值从0到99)
%Y 带世纪部分的十制年份(常用)