
2021-04-10 昨天、今天、明天|Python用datetime库自定义函数返回日期格式字符串
发布日期:2021-05-04 07:31:32
浏览次数:25
分类:技术文章
本文共 3309 字,大约阅读时间需要 11 分钟。
今天的日期
datetime.date.today() 或 datetime.datetime.now()
>>> import datetime>>> datetime.date.today()datetime.date(2021, 4, 10)>>> d=datetime.date.today()>>> print(d)2021-04-10>>> type(d)
日期的偏移
用函数 datetime.timedelta(days=diff) 来实现:
>>> import datetime>>> datetime.date.today()datetime.date(2021, 4, 10)>>> d=datetime.date.today()>>>>>> d+datetime.timedelta(5)datetime.date(2021, 4, 15)>>> d-datetime.timedelta(5)datetime.date(2021, 4, 5)>>> d+datetime.timedelta(-5)datetime.date(2021, 4, 5)
日期型转日期字符串——
昨天、今天、明天的字符串形式
方法一:
用format()函数转换,日期分隔符换成“-”也可以: '{0:04}-{1:02}-{2:02}'>>> def strDate(diff=0): '''返回今天或前/后diff天的日期格式字符串''' import datetime as dt d=dt.date.today()+dt.timedelta(days=diff) return '{0:04}/{1:02}/{2:02}'.format(d.year,d.month,d.day)>>> strDate(-1)'2021/04/09'>>> strDate()'2021/04/10'>>> strDate(1)'2021/04/11'>>>>>> strDate(3)'2021/04/13'>>> strDate(30)'2021/05/10'>>> strDate(31)'2021/05/11'>>> strDate(365)'2022/04/10'>>> strDate(366)'2022/04/11'>>> strDate(-3)'2021/04/07'>>> strDate(-30)'2021/03/11'>>> strDate(-31)'2021/03/10'>>> strDate(-365)'2020/04/10'>>> strDate(-366)'2020/04/09'>>>
方法二:除了用format()函数转换外,datetime 自带转换方法: .strftime()
dDate = dateString.strftime('格式化串')>>> import datetime as dt>>> d=dt.date.today()>>> ddatetime.date(2021, 4, 10)>>> type(d)>>>>>> d=d.strftime('%Y-%m-%d')>>> d'2021-04-10'>>> type(d)
方法三: f-string (版本要求: Python3.6+)
>>> import datetime as dt>>> d=dt.datetime.today()>>> ddatetime.datetime(2021, 4, 10, 11, 59, 54, 531850)>>> f'{d.year}/{d.month:02}/{d.day:02}''2021/04/10'>>> f'{d.year}-{d.month:02}-{d.day:02}''2021-04-10'
日期字符串转日期型
datetime.datetime.strptime(dateString,'格式化串')
>>> dateString = '2020/3/23'>>> datetime.datetime.strptime(dateString, '%Y/%m/%d')datetime.datetime(2020, 3, 23, 0, 0)>>> dateString = '2020-03-23'>>> datetime.datetime.strptime(dateString, '%Y/%m/%d')Traceback (most recent call last): File "", line 1, in datetime.datetime.strptime(dateString, '%Y/%m/%d') File "E:\Python\lib\_strptime.py", line 568, in _strptime_datetime tt, fraction, gmtoff_fraction = _strptime(data_string, format) File "E:\Python\lib\_strptime.py", line 349, in _strptime raise ValueError("time data %r does not match format %r" %ValueError: time data '2020-03-23' does not match format '%Y/%m/%d'>>> datetime.datetime.strptime(dateString, '%Y-%m-%d')datetime.datetime(2020, 3, 23, 0, 0)# 错: datetime.datetime.strptime('2020/03/23', '%Y-%m-%d')# 错: datetime.datetime.strptime('2020-03-23', '%Y/%m/%d')# 参数的格式必须前后一致,否则报错 time data format not match
附一: 日期格式化符
代码 | 说明 |
%y | 两位数的年份表示(00-99) |
%Y | 四位数的年份表示(000-9999) |
%m | 月份(01-12) |
%d | 月内中的一天(0-31) |
%H | 24小时制小时数(0-23) |
%I | 12小时制小时数(01-12) |
%M | 分钟数(00-59) |
%S | 秒(00-59) |
%a | 本地简化星期名称 |
%A | 本地完整星期名称 |
%b | 本地简化的月份名称 |
%B | 本地完整的月份名称 |
%c | 本地相应的日期表示和时间表示 |
%j | 年内的一天(001-366) |
%p | 本地A.M.或P.M.的等价符 |
%U | 一年中的星期数(00-53)星期天为星期的开始 |
%w | 星期(0-6),星期天为星期的开始 |
%W | 一年中的星期数(00-53)星期一为星期的开始 |
%x | 本地相应的日期表示 |
%X | 本地相应的时间表示 |
%Z | 当前时区的名称 |
%% | %号本身 |
附二: datetime库类列表
类名称 | 描述 |
---|---|
datetime.date | 表示日期,常用的属性有:year, month和day |
datetime.time | 表示时间,常用属性有:hour, minute, second, microsecond |
datetime.datetime | 表示日期时间,date/time兼而有之 |
datetime.timedelta | 表示两个date、time、datetime实例之间的时间间隔,分辨率(最小单位)可达到微秒 |
datetime.tzinfo | 时区相关信息对象的抽象基类。它们由datetime和time类使用,以提供自定义时间的而调整。 |
datetime.timezone | Python 3.2中新增的功能,实现tzinfo抽象基类的类,表示与UTC的固定偏移量 |
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2025年04月07日 04时50分21秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
(C++11/14/17学习笔记):线程启动、结束,创建线程多法、join,detach
2019-03-04
A Guide to Node.js Logging
2019-03-04
HTML 和 CSS 简单实现注册页面
2019-03-04
875 爱吃香蕉的珂珂(二分查找)
2019-03-04
Dijkstra算法的总结
2019-03-04
Vue实现选项卡功能
2019-03-04
vue中接收后台的图片验证码并显示
2019-03-04
趣谈win10常用快捷键
2019-03-04
王爽 《汇编语言》 读书笔记 三 寄存器(内存访问)
2019-03-04
JDK 内置的多线程协作工具类的使用场景
2019-03-05
Java 中哪些对象可以获取类对象
2019-03-05
11.2.6 时间值的小数秒
2019-03-05
Redis源码分析(七)--- zipmap压缩图
2019-03-05
自定义Hive Sql Job分析工具
2019-03-05
【MySQL】(九)触发器
2019-03-05
Oracle 11G环境配置
2019-03-05
【Python】(十二)IO 文件处理
2019-03-05
【Oozie】(三)Oozie 使用实战教学,带你快速上手!
2019-03-05