0. 标题
Python中Datetime的使用
作者: quantgalaxy@outlook.com
欢迎交流
1. 介绍
每次使用python处理datetime数据的时候,我总需要在书上查找或者网上搜索,使用后就很快忘记了,所以在这里整理出来一些常用方法。
2. 常用方法
2.1 获取当前的日期时间
from datetime import datetime
print(datetime.now())
# 2023-09-28 09:05:47.862986
2.2 创建一个时间日期的datetime对象
from datetime import datetime
dt = datetime(2023, 10, 24)
print(dt)
# 2023-10-24 00:00:00
作者: quantgalaxy@outlook.com
欢迎交流
2.3 创建一个日期+时间的datetime对象
from datetime import datetime
dt = datetime(2023, 10, 24, 11, 0, 5)
print(dt)
# 2023-10-24 11:00:05
六个参数分别是:年,月,日,小时,分钟,秒。
2.4 把一个日期类型的字符串转为datetime对象
from datetime import datetime
string = '2023-12-24'
dt = datetime.strptime(string, '%Y-%m-%d')
print(dt)
# 2023-12-24 00:00:00
第二个参数,是用来指示出字符串的格式的。
不同的format表示不同的含义,可以参考官方文档:format-codes
2.5 把一个datetime对象转为string字符串格式
from datetime import datetime
dt = datetime(2023, 10, 24)
string = str(dt))
print(string)
# 2023-10-24 00:00:00
如果你也想像 2.4 一样,可以显示的指出各个字段的含义,可以用以下方法:
from datetime import datetime
dt = datetime(2023, 10, 24)
string = datetime.strftime(dt, '%Y-%m-%d')
print(string) # 2023-10-24
更多的例子:
from datetime import datetime
dt = datetime(2023, 10, 24)
print(datetime.strftime(dt, '%Y-%m-%d')) # 2023-10-24
print(datetime.strftime(dt, '%Y-%b-%d')) # 2023-Oct-24
print(datetime.strftime(dt, '%Y-%B-%d')) # 2023-October-24
print(datetime.strftime(dt, '%Y-%d-%m')) # 2023-24-10
print(datetime.strftime(dt, '%Y--%m--%d')) # 2023--10--24
print(datetime.strftime(dt, '%YXX%mXX%d')) # 2023XX10XX24
2.6 获取间隔时间段后的datetime
- 获取当前时间后一天的datetime对象(明天的datetime对象)
from datetime import datetime
from datetime import timedelta
now = datetime.now()
dt = now + timedelta(days=1)
print(now)
print(dt)
# now: 2023-09-28 19:30:37.791256
# dt: 2023-09-29 19:30:37.791256
使用timedelta,可以用于增量计算,参数days表示间隔多少天。
如果是计算昨天,直接减掉就可以了。
- 获取当前时间几个小时前的datetime
from datetime import datetime
from datetime import timedelta
now = datetime.now()
dt = now - timedelta(hours=6)
print(now)
print(dt)
# now: 2023-09-28 19:32:02.884145
# dt: 2023-09-28 13:32:02.884145
timedelta的语法如下,所有时间单位都可以当成间隔参数来输入:
class datetime.timedelta(days=0, seconds=0, microseconds=0, milliseconds=0, minutes=0, hours=0, weeks=0)
3. 作者
作者: quantgalaxy@outlook.com
欢迎交流