python中strptime()和strftime()的区别和用法
之前每次遇到时间格式转换都要去搜,今天决定自己记录一下这两个方法的区别和用法,也方便自己加深印象
1.strptime中的p代表parse,意为解析,也就是将一个字符串解析成时间格式,什么是时间格式,下图为例
import datetime
strdate = '2020年6月23日 12:12:08'
parsedate = datetime.datetime.strptime(strdate,'%Y年%m月%d日 %H:%M:%S')
print(type(parsedate)) #输出:<class 'datetime.datetime'>
print(parsedate) #输出:2020-06-23 12:12:08
formatedate = datetime.datetime.strftime(parsedate,'%Y%m%d')
print(formatedate) #输出:20200623
从这可以看出给定一个字符串’2020年6月23日 12:12:08’,datetime.datetime.strptime()需要传入两个参数,第一个是需要解析的字符串,第二个是需要转换成的时间格式(注意!这里的时间格式必须和字符串一致,否则会报错),不能写成
strdate = '2020年6月23日 12:12:08'
parsedate = datetime.datetime.strptime(strdate,'%Y年%m月%d日 %H:%M') #错误写法会报错
必须和需要解析的字符串格式完全一致。
2.strftime()和strptime()的用法可以说是相反的,strftime()中的 ‘f’ 意为 format表示格式化
就是将一个时间格式类型的数据格式化为一个字符串类型数据,上面代码中formatdate就是经过格式化之后的数据,将parserdate这个时间格式数据转化为字符串格式数据,(注意!这里同样需要传入两个参数,一个为需要格式化的时间格式对象parsedate,另外一个参数为你想要转化成的字符串格式,这里可以自定义。)
strftime()还有另外一个常用的地方
nowtime = datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')
print(nowtime) #输出:2021-05-12 15:02:16
print(type(nowtime)) #输出:<class 'str'>
我们获取当前时间,可以看到datetime.datetime.now()返回的是一个时间格式数据,再使用strftime的时候只需传入一个参数即可,最后我们打印时间格式为str。