前言:
参考:https://blog.csdn.net/weixin_42232219/article/details/89838580
在 python 中,datetime 是对日期数据进行处理的主要模块。
datetime 是 python 标准库的一部分,这意味着你无须单独安装它。
无论何时你需要用 python 处理日期数据,datetime 都能提供所需方法。
一、datetime模块和类
在 datetime 模块中,最重要也是最常用的对象就是 datetime 类。
datetime 日期时间对象,常用的属性有year, month, day, hour,minute,second,microsecond
date 日期对象, 常用的属性有year,month,day
time 时间对象,hour,minute,second,microsecond
timedelta 时间间隔,即两个时间点之间的长度
二、获取当前日期与格式
2.1获取当前日期时间。年月日时分秒
from datetime import datetime #获取当前本地时间 a=datetime.now() print('当前日期:',a) #获取当前世界时间 b=datetime.utcnow() print('世界时间:',b)
import datetime now = datetime.datetime.now() year = now.year month = now.month day = now.day hour = now.hour minute = now.minute second = now.second microsecond = now.microsecond print("now", now) print('year', year, 'month', month, 'day', day, 'hour', hour, 'minute', minute, 'second', second, 'microsecond', microsecond)
2.2转化为datetime
参考:https://www.cnblogs.com/qisq/p/7614398.html
from datetime import datetime d=datetime.strptime('2017/9/30','%Y/%m/%d') e=datetime.strptime('2017年9月30日星期六','%Y年%m月%d日星期六') f=datetime.strptime('2017年9月30日星期六8时42分24秒','%Y年%m月%d日星期六%H时%M分%S秒') g=datetime.strptime('9/30/2017','%m/%d/%Y') h=datetime.strptime('9/30/2017 8:42:50 ','%m/%d/%Y %H:%M:%S ') print('d', d) print('e', e) print('f', f) print('g', g) print('h', h)
2.3格式化日期
格式化符号 | 含义 |
%y | 年份的后两位(00-99) |
%Y | 四位数的年份表示(0000-9999) |
%m | 月份(01-12) |
%d | 月中的第几天(0-31) |
%H | 24小时制小时数(0-23) |
%I | 12小时制小时数(01-12) |
%M | 分钟数(00-59) |
%S | 秒(00-59) |
%j | %j 年内的一天(001-366) |
%U | 一年中的星期数(00-53)星期天为星期的开始 |
%W | 一年中的星期数(00-53)星期一为星期的开始 |
%u | ( 1-7),星期一为星期的开始 |
%w | ( 0-6),星期天为星期的开始 |
%a | 本地英文简化星期名称 (比如星期二为Tue) |
%A | 本地英文完整星期名称 (比如星期二为Tuesday) |
%b | 本地英文简化的月份名称 |
%B | 本地英文完整的月份名称 |
%p | 本地A.M.或P.M.的等价符 |
2.4汉字化日期
from datetime import datetime dt = datetime(2019, 1, 7, 21, 20, 25, 123456) s2 = dt.strftime('%Y{Y}%m{m}%d{d}%H{H}%M{H}%S{S}').format(Y='年', m='月', d='日', H='时', M='分', S='秒') print(s2)
2.5 timedelta
一个timedalta
对象代表了一个时间差,当两个date
或datetime
进行相减操作时会返回一个timedelta
对象,或者,我们也可以手动对其进行实例化
class datetime.timedelta([days[, seconds[, microseconds[, milliseconds[, minutes[, hours[, weeks]]]]]]])
只有days
是不能超出范围的,否则会抛出OverflowError
异常
import datetime dt = datetime.datetime(2019, 1, 7, 00, 20, 25, 123456) last_day = (dt-datetime.timedelta(days=1)).strftime("%Y-%m-%d") last_hour = (dt-datetime.timedelta(hours=1)).strftime("%H") print('last_day',last_day) print('last_hour',last_hour)