如何把python 字符串转换为utc时间?
问题:如何把string转换为utc格式时间?
如何把字符串‘20181221’,转换为
目标格式:"2018-12-21T00:00:00.000Z"
已尝试过
from dateutil.parser import parse
import dateutil
a = parse('20181222').isoformat()
print(a)
无法获取有000.Z的格式
之前直接使用parse函数,代码如下:
from dateutil.parser import parse
import dateutil
a = parse('20181222')
然后存入mongodb中,会自动保存为包含000.Z格式
笔者最终是希望把pandas中的DataFrame的数据传到mongodb中,
可由于之前的资料日期格式为"2018-12-21T00:00:00.000Z",
现在只能得到‘2018-12-22T00:00:00' ,
求问如何能把字符串’20181221‘转换为"2018-12-21T00:00:00.000Z",
不胜感激!
其他方法也尝试过,依然无法得到想要的格式。
import arrow
arrow.get('20181221').datetime
以及
import dateutil
u = dateutil.tz.tzutc()
u2 = dateutil.tz.gettz('America/Chicago')
date1 = datetime.datetime(2010,5,2,11,10,tzinfo=u)
date2 = datetime.datetime(2010,5,2,11,10,tzinfo=u2)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
后来测试了很多方法,目前已经解决,方法如下:
总结:问题主要出现在直接用pandas读取csv,生成的DataFrame传输到mongodb中不会把时间变成isoDate格式(在我的电脑是这样,其他人不知道会不会)
方法一(可行,但麻烦)
1.通过第三方库:
来转换获得的格式,用pymongo导入mongodb中后,格式不是isoDate格式(这个时候可以通过进入数据库中,输入
可以得到isoDate,但太麻烦了……
2.通过第三方库(pendulum)
来进行格式转换,
在pandas中会出现以下反馈:'DateTime' object has no attribute 'nanosecond'
这个问题目前还不明白是什么问题。
3.最终解决方案:
1.pandas读取csv后,把时间列的值重新替换,例如:
原因:直接用pandas读取csv,获取的时间数据后,导入mongodb,但是格式不是isoDate格式。
从python的datetime 到 mongodb 的isodate 的格式转化主要有两个麻烦:
我觉得不妨参考datatime.py的 iosformat 实现,自己写一个。
datetime模块自带微秒输出的功能: