strptime和strftime是两个比较容易搞混的函数,今天恰好用到,在这里做一个总结。
strptime:
p表示parse,表示分析的意思,所以strptime是给定一个时间字符串和分析模式,返回一个时间对象。
strftime:
f表示format,表示格式化,和strptime正好相反,要求给一个时间对象和输出格式,返回一个时间字符串
下面用代码帮助理解。
import datetime
time1 = datetime.datetime.strptime('2019/07/04 14:47', '%Y/%m/%d %H:%M')
print(type(time1), time1)
返回结果为<class 'datetime.datetime'> 2019-07-04 14:47:00
可以看到strptime函数返回结果类型为datetime类的时间对象,将字符串按照给定的模式分析成了一个时间对象。
time2 = datetime.datetime.strftime(time1, '%Y@%m@%d %H:%M')
time2 = time1.strftime('%Y@%m@%d %H:%M')
#两种写法都是一样的,这里time1即上面代码返回的时间对象
print(type(time2), time2)
返回结果为<class 'str'> 2019@07@04 14:47
可以看到strftime返回类型为字符串,并按照给定的格式打印。
时间格式的书写可参照下表