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 2018 Mo Tu We Th Fr Sa Su 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 # 设置每周以周三开始算 >>> 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 当前时区的名称
作者:Leozhanggg
出处:https://www.cnblogs.com/leozhanggg/p/13954504.html
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。