
Python总结之处理时间(time)、日期时间(datetime)、日历(calendar)
发布日期:2021-05-09 04:23:06
浏览次数:16
分类:博客文章
本文共 3031 字,大约阅读时间需要 10 分钟。
1、 模块导入
# 日期时间对象,常用方法有date(), time()>>> from datetime import datetime# 日期对象,常用属性有year, month, day>>> from datetime import date# 时间对象,常用属性有hour, minute, second, microsecond, tzinfo(时区)>>> from datetime import time# 时间间隔,常用属性有weeks, days, hours, ...>>> from datetime import timedelta# 日期间隔,常用属性有years, months, weeks, days, hours ...>>> from dateutil import relativedelta注意:此模块需要导入(pip install python-dateutil)
2、初始化对象
>>> datetime_obj = datetime.today()>>> date_obj = date.today()>>> str_obj = '2020-11-10 15:42:53'>>> timestamp_obj = '1604994173'
3、格式转换
# datetime 转 string (直接使用str强制转换即可)>>> str(datetime_obj) '2020-11-10 15:42:53.821000'>>> str(date_obj)'2020-11-10'# datetime 格式化成 string>>> datetime_obj.strftime('%Y-%m-%d %H:%M:%S')'2020-11-10 15:42:53'>>> datet_obj.strftime('%Y-%m-%d')'2020-11-10'# datetime 转 date>>> datetime_obj.date()datetime.date(2012,11,19)# datetime 转 timestamp>>> datetime_obj.timestamp()1604994173.821# 注意:Python时间戳是以秒为单位,java时间戳则以毫秒为单位# string 转 datetime>>> datetime.strptime(str_obj,'%Y-%m-%d %H:%M:%S')datetime.datetime(2020, 11, 10, 15, 42, 53)# timestamp 转 datetime>>> datetime.fromtimestamp(timestamp_obj)datetime.datetime(2020, 11, 10, 15, 42, 53)# date 转 datetime>>> datetime.strptime(str(date_obj), '%Y-%m-%d')datetime.datetime(2020, 11, 10, 0, 0)
4、类型判断
>>> isinstance(datetime_obj, date)True>>> isinstance(datetime_obj, datetime)True>>> isinstance(date_obj, date)True>>> isinstance(date_obj, datetime)False
5、日期时间计算
# 年限加1>>> date_obj + relativedelta.relativedelta(years=1)datetime.date(2021, 11, 10)# 月限减1>>> date_obj - relativedelta.relativedelta(months=1)datetime.date(2020, 10, 10)>>> datetime_obj + relativedelta.relativedelta(months=-1)datetime.datetime(2020, 10, 10, 15, 42, 53, 821000)# 星期加减1>>> date_obj + relativedelta.relativedelta(weeks=-1)datetime.date(2020, 11, 3)>>> date_obj + datetime.timedelta(weeks=1)datetime.date(2020, 11, 17)# 天数减1>>> date_obj - relativedelta.relativedelta(days=1)datetime.date(2020, 11, 9) # 小时加1>>> datetime_obj + datetime.timedelta(hours=1)datetime.datetime(2020, 11, 10, 16, 42, 53, 821000) # 分钟(minutes)、秒(seconds)、毫秒(microseconds)以此类推即可
6、日历模块
>>> import calendar>>> calendar.month(2018, 12) December 2018Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 8 910 11 12 13 14 15 1617 18 19 20 21 22 2324 25 26 27 28 29 3031# 设置每周以周三开始算>>> calendar.setfirstweekday(2) # 判断是否是闰年>>> print(calendar.isleap(2018))False # 返回某月的第一天是星期几和这个月的天数>>> print(calendar.monthrange(2018, 12))(5, 31)
Python中时间日期格式化符号: ------------------------------------ %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 当前时区的名称
作者:
出处:
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
发表评论
最新留言
很好
[***.229.124.182]2025年04月05日 19时23分33秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
对象的可见性 - volatile篇
2019-03-06
端口重用
2019-03-06
为什么面试完,总是让你回去等通知?
2019-03-06
Java 中初始化 List 集合的 6 种方式!
2019-03-06
终于有人把 HTTPS 原理讲清楚了!
2019-03-06
别乱提交代码了,看下大厂 Git 提交规范是怎么做的!
2019-03-06
在滴滴和头条干了 2 年后端开发,太真实…
2019-03-06
送给你 12 个 Git 使用技巧!
2019-03-06
使用 Redis 实现一个轻量级的搜索引擎,牛逼!
2019-03-06
你还在用分页?试试 MyBatis 流式查询,真心强大!
2019-03-06
你还在用命令看日志?快用 Kibana 吧,一张图片胜过千万行日志!
2019-03-06
python进阶(3)json文件与python字典的转化
2019-03-06
Linux中对用户操作
2019-03-06
大数据整理——数据集成
2019-03-06
Linux查看CUDA和cuDNN版本
2019-03-06
centos修改mysql5.7默认端口后启动异常
2019-03-06
java面试系列<4>——IO
2019-03-06
来讲讲你对ThreadLocal的理解
2019-03-06
No.017:Letter Combinations of a Phone Number
2019-03-06
No.021:Merge Two Sorted Lists
2019-03-06