time/datetime模块作为不需要额外安装的python扩展模块,能很好的用于各种带有时间需求的场景中,以下是本人在代码开发过程中经常用到的场景。
-
- 获取当前时间,并格式化输出,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 |当前时区的名称
%% |%号本身
- 获取当前时间,并格式化输出,Python时间格式化参数:
以最常用的yyyy-MM-dd HH:mm:ss为例:
import time
now = time.strftime('%Y-%m-%d %H:%m:%S', time.localtime())
#strftime很好理解,就是str from time ,给一个时间字段返回格式化好的字符串
print('现在的时间是:', now)
- 2.求某个时间的指定前一段时间
记得数学里面有个长得像三角形一样的希腊符号△,念作delta,意思是差值,将指定时间前后推移,用到的就是datetime模块里面的timedelta()。
timedalta支持下列参数
days ,seconds, microseconds, milliseconds, minutes, hours, weeks
(如果需要偏移月份,使用dateutil的relativedelta)
import datetime
#获取前一天时间
yesterday = datetime.datetime.today() + datetime.timedelta(days=-1)
#获取前一个小时时间
prev_hour = datetime.datetime.today() + datetime.timedelta(hours=-1)
- datetime timedelta用一行代码快速生成N天所有日期的list
import datetime
# 举个例子 比如19年10月1号开始的一百天
oct_dates = [ datetime.datetime.strftime(datetime.date(2019,10,1)+datetime.timedelta(days=i),'%Y%m%d') for i in range(100) ]