python处理其他时间日期格式为yyyy-MM-dd HH:mm:ss格式
这篇只针对目标格式为yyyy-MM-dd HH:mm:ss的,有其它需求的就不用看啦~
今天被提了个要求要统一爬取过来的某日期字段为yyyy-MM-dd HH:mm:ss格式。一看才发现原来存储的日期格式五花八门的,几乎什么样子的都有,所以下面我对不同情况用不同的方法去处理。发现所有数据主要就两大类,做个总结:
一、原数据是其他五花八门的时间格式,如2021,2016-02-24,2016/02/24 2016-02,2018/1等,我们可以直接使用强大的pandas库。
可以用
date = str(pd.to_datetime(date, format='%Y/%m/%d'))
比如:原date=2021,处理后date=2021-01-01 00:00:00
可以发现通过pandas的这个方法,会自动用默认值补齐月份和时分秒。给的数据缺少什么,就会补足什么。基本上常见的日期分隔符,pandas都可以识别,所以我非常推荐这个方法。
如果数据是“2018年6月15日”这种,自己处理成可以给pandas用的日期分隔符就好啦。比如用
date = date.replace('年', '/').replace('月', '/').replace('日', '')
替换一下,再传给该方法,其他情况就不过多讨论了。
二、原数据是时间戳格式,是正时间戳,如5932800,71424000等。
不管时间戳是几位的,只要是正数,可直接:
date = time.localtime(int(date))
date = time.strftime("%Y-%m-%d %H:%M:%S", date)
就可以得到yyyy-MM-dd HH:mm:ss日期格式。
如果时间戳是负数,用这个:
date = str(datetime.datetime(1970, 1, 1) + datetime.timedelta(seconds=int(date)))
(时间戳是围绕1970年1月1日前后的,不多解释了) 做个小结:日期之间的转化方式实在是太多了,可以用time,可以用datetime,还可以用pandas,真的没必要全部总结出来,逮住啥能起作用就用吧!在这方面我觉得就是能用就行~
分类:
Random note
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了