首页 > 解决方案 > 将 Twitter 新日期格式转换为日期时间 ( %Y-%m-%d %H:%M%S' )

问题描述

Twitter 的新日期格式曾经是

%a %b %d %H:%M%S    0000 %Y

然而现在是这样的……

df.created_at[0]
   '2021-03-08T19:14:00.000Z'

我们如何转换它?令我困惑的是弄清楚如何处理“T”和“.000Z”部分。

谢谢!

乙:

为了清楚起见,https ://developer.twitter.com/en/docs/twitter-ads-api/timezones说明了 strptime 是什么。但是,它似乎对我不起作用。

尝试我最好的猜测...

datetime.strftime( datetime.strptime( df.created_at[0], '%Y-%m-%dT%H:%M:%S.00%z' ), '%Y-%m-%d %H:%M:%S' )
ValueError: time data '2021-03-08T19:14:00.000Z' does not match format '%Y-%m-%dT%H:%M:%S.00%z'

尝试他们的精确匹配...

datetime.strftime( datetime.strptime( df.created_at[0], '%Y-%m-%dT%l:%M:%S%z' ), '%Y-%m-%d %H:%M:%S' )
ValueError: 'l' is a bad directive in format '%Y-%m-%dT%l:%M:%S%z'

标签: pythondatetimetwitter

解决方案


>>> datetime.strftime( datetime.strptime(s, '%Y-%m-%dT%H:%M:%S.00%z' ), '%Y-%m-%d %H:%M:%S' )
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.8/_strptime.py", line 568, in _strptime_datetime
    tt, fraction, gmtoff_fraction = _strptime(data_string, format)
  File "/usr/lib/python3.8/_strptime.py", line 349, in _strptime
    raise ValueError("time data %r does not match format %r" %
ValueError: time data '2021-03-08T19:14:00.000Z' does not match format '%Y-%m-%dT%H:%M:%S.00%z'
>>> datetime.strftime( datetime.strptime(s, '%Y-%m-%dT%H:%M:%S.000%z' ), '%Y-%m-%d %H:%M:%S' )
'2021-03-08 19:14:00'

您只是在解析字符串中缺少 a 0


推荐阅读