使用datetime类,需要先import自带的datetime库
from datetime import datetime
最近在编写小程序中,经常需要生成当天的日期字符串,使用方法:
In [5]: datetime.today()
Out[5]: datetime.datetime(2020, 2, 29, 13, 35, 25, 378618)
或者
In [6]: datetime.now()
Out[6]: datetime.datetime(2020, 2, 29, 13, 36, 9, 692100)
datetime类型也可以进行"+/-"操作:
In [6]: from datetime import timedelta
In [7]: from datetime import datetime
In [8]: datetime.now() - timedelta(days=1)
Out[8]: datetime.datetime(2020, 2, 28, 13, 54, 28, 313980)
In [9]: datetime.now() + timedelta(days=1)
Out[9]: datetime.datetime(2020, 3, 1, 13, 54, 36, 882067)
这样得到的是datetime类型,需要将其转换为string类型,需要使用datetime类型的strftime方法:
In [9]: datetime.today().strftime('%Y%m%d')
Out[9]: '20200229'
也可以将一些不符合自己规则的字符串将其格式化,可以使用datetime类型的strptime方法:
In [1]: a="Wed, 18 Mar 2020 17:38:16 -0700"
In [2]: import datetime
In [3]: datetime.datetime.strptime(a, '%a, %d %b %Y %H:%M:%S %z')
这样就得到了一个datetime类型
其中,strftime()方法中常用的输出格式为:
- %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 当前时区的名称
- %% %号本身
另外,time模块也可以实现相应的功能:
In [22]: import time
In [23]: time.strftime('%Y%m%d %H:%M:%S')
Out[23]: '20200229 13:49:52'
网友评论