在使用python的time.localtime时,新手会出现:OSError: [Errno 22] Invalid argument错误,对于还没踩过此坑的朋友来说,此提示没有指明具体原因,实在是一头雾水
工具/原料
1
python3以上
2
time模块
方法/步骤
1
python在爬取数据过程中,会遇到以时间戳表示的日期,此时为了看上去方便,都需要将其转换为‘2020-03-12’这样的格式。
2
先写上代码:import time date = '64' timeArray=time.localtime(int(date)) print(time.strftime('%Y-%m-%d', timeArray))此时运行就会出现错误:OSError: [Errno 22] Invalid argument
3
错误的原因不在于格式,因为我们已通过int(date)进行了转换,真正的错误在于date的长度,一般爬取下来时显示的时间戳时长都是13位的数字,而time.localtime的参数要的长度是10位,所以我们需要将其/1000并取整即可。
4
import time date = '64' timeArray=time.localtime(int(int(date)/1000)) print(time.strftime('%Y-%m-%d', timeArray))此时就能得到2020-03-06这样的格式了。