如何让.to_datetime()停止在字符串中按UTC进行偏移

时间:2016-09-13 02:38:39

标签: python pandas

我正在转换从.CSV文件中作为字符串给出的时间戳。它采用以下格式:

2016-06-06T09:30:00.000856632-04:00

当我使用.to_datetime()将其转换为日期对象时,它会抵消UTC时间。在这个例子中,上午9:30变为下午1:30:

2016-06-06 13:30:00.000856632

我阅读了函数和思想设置UTC = False的文档,因为参数可以解决这个问题,但它只是将时间偏移了不同的数量。

3 个答案:

答案 0 :(得分:2)

该字符串有-4小时的偏移量。转换前删除:

>>> pd.to_datetime("2016-06-06T09:30:00.000856632-04:00"[:-6])
Timestamp('2016-06-06 09:30:00.000856632')

答案 1 :(得分:1)

您可以在转换后使用timedelta减去4小时的偏移量:

import datetime
import pandas as pd
pd.to_datetime("2016-06-06T09:30:00.000856632-04:00") + datetime.timedelta(hours = -4)
# Timestamp('2016-06-06 09:30:00.000856632')

答案 2 :(得分:0)

Pandas .to_datetime()有一个格式参数。

  

格式:字符串,默认无

     

strftime要解析时间,例如“%d /%m /%Y”,请注意“%f”将一直解析到纳秒。

.to_datetime(format="%d/%m/%Y")

将产生

  

&#39 11/03/2016'

format遵循.strftime()中使用的相同Python datetime格式。有关时间格式参数的完整列表,see this reference