【问题标题】:I am trying to convert a time column into datetime but the column looks like this '2020-01-07T22:24:20.000Z' [duplicate]我正在尝试将时间列转换为日期时间,但该列看起来像这样 '2020-01-07T22:24:20.000Z' [重复]
【发布时间】:2021-07-24 06:15:48
【问题描述】:

我从 Twitter 上抓取数据,我的日期格式为 2020-01-07T22:24:20.000Z。我需要将其转换为日期时间格式。

【问题讨论】:

标签: python pandas datetime datetime-format


【解决方案1】:

您可以使用datetime

import datetime as dt

date = '2020-01-07T22:24:20.000Z'


formatted = dt.datetime.strptime(date, '%Y-%m-%dT%H:%M:%S.000Z')

输出是 Out[25]: datetime.datetime(2020, 1, 7, 22, 24, 20) 请注意,在我的 strptime() 调用中插入的秒数和字符 T 和 Z 中的小数

【讨论】:

  • 在解析指令中使用文字 Z 会导致天真的日期时间(tzinfo 未设置为 UTC)——我认为这是错误的,因为 Z 表示 UTC 而 Python 将天真的日期时间视为 local时间,而不是UTC。
【解决方案2】:

我们可以使用 pd.to_datetime 方法将字符串转换为 pandas datetime(Timestamp) 类型。

pd.to_datetime('2020-01-07T22:24:20.000Z')

输出

Timestamp('2020-01-07 22:24:20+0000', tz='UTC')

如果你有一列需要转换为日期时间,那么

输入

df = DataFrame({
    'time':['2020-01-07T22:24:20.000Z', '2020-01-08T22:24:20.000Z']
})

    time
0   2020-01-07T22:24:20.000Z
1   2020-01-08T22:24:20.000Z

转化率

df['time'] = pd.to_datetime(df.time)
df

输出

    time
0   2020-01-07 22:24:20+00:00
1   2020-01-08 22:24:20+00:00

【讨论】:

    【解决方案3】:

    你需要先解析日期

    function parseTwitterDate(aDate)
    {   
      return new Date(Date.parse(aDate.replace(/( \+)/, ' UTC$1')));
      //sample: Wed Mar 13 09:06:07 +0000 2013 
    }
    

    然后你可以把它转换成时间

    console.log(parseTwitterDate('2020-01-07T22:24:20.000Z').getTime());
    

    这应该返回时间戳,这段代码用于 javascript 希望对你有帮助

    【讨论】:

      猜你喜欢
      • 2019-04-30
      • 1970-01-01
      • 2015-07-03
      • 2021-09-12
      • 1970-01-01
      • 1970-01-01
      • 2010-10-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多