如何将datetime转换为GMT+;Python中的7?

如何将datetime转换为GMT+;Python中的7?,python,pandas,dataframe,datetime,Python,Pandas,Dataframe,Datetime,我有一个看起来像这样的数据框: conversation\u创建于 02020-10-15T03:39:42.766773+00:00 1202-10-14T11:24:33.831177+00:00 2020-10-14T08:29:44.192258+00:00 3 2020-10-14T01:42:06.674313+00:00 4 2020-10-13T12:57:04.218184+00:00您可以使用pytz为您的datetime实例设置时区 例如: from pytz impor

我有一个看起来像这样的数据框:

conversation\u创建于
02020-10-15T03:39:42.766773+00:00
1202-10-14T11:24:33.831177+00:00
2020-10-14T08:29:44.192258+00:00
3 2020-10-14T01:42:06.674313+00:00

4 2020-10-13T12:57:04.218184+00:00
您可以使用
pytz
为您的
datetime
实例设置时区

例如:

from pytz import timezone
from datetime import datetime

date = datetime.now()

print(date)
tz = timezone("Etc/GMT+7")
date = date.replace(tzinfo=tz)
print(date)
输出:

2020-10-26 10:33:25.934699
2020-10-26 10:33:25.934699-07:00

您可以使用
pytz
datetime
实例设置时区

例如:

from pytz import timezone
from datetime import datetime

date = datetime.now()

print(date)
tz = timezone("Etc/GMT+7")
date = date.replace(tzinfo=tz)
print(date)
输出:

2020-10-26 10:33:25.934699
2020-10-26 10:33:25.934699-07:00

我假设你有一个熊猫系列,因为你发布的数据看起来像一个。 然后您可以使用
tz_convert
,即

import pandas as pd
pd.to_datetime('2020-10-15T03:39:42.766773+00:00').tz_convert('Etc/GMT+7')
正如注释中指出的,由于datetime中带有
T
,因此它是字符串格式,因此我们需要先转换为datetime,然后再转换为正确的时区

pd.to_datetime(series).dt.tz_convert('Etc/GMT+7')

我假设你有一个熊猫系列,因为你发布的数据看起来像一个。 然后您可以使用
tz_convert
,即

import pandas as pd
pd.to_datetime('2020-10-15T03:39:42.766773+00:00').tz_convert('Etc/GMT+7')
正如注释中指出的,由于datetime中带有
T
,因此它是字符串格式,因此我们需要先转换为datetime,然后再转换为正确的时区

pd.to_datetime(series).dt.tz_convert('Etc/GMT+7')

您可以在df上应用pytz.timezone

from pytz import timezone
from datetime import datetime

def myDate(x): 
  tz = timezone("Etc/GMT+7")
  dt = x.replace(tzinfo=tz)
  return dt

df['conversation__created_at'] = df.apply(lambda row: myDate(row['conversation__created_at'].to_pydatetime()))

您可以在df上应用pytz.timezone

from pytz import timezone
from datetime import datetime

def myDate(x): 
  tz = timezone("Etc/GMT+7")
  dt = x.replace(tzinfo=tz)
  return dt

df['conversation__created_at'] = df.apply(lambda row: myDate(row['conversation__created_at'].to_pydatetime()))

您只能使用
datetime

从datetime导入datetime、timedelta、时区
d=日期时间。从ISOFORMAT(“2020-10-15T03:39:42.766773+00:00”)
tz=时区(时间增量(小时=7))
新时间=d.astimezone(tz)

您只能使用
datetime

从datetime导入datetime、timedelta、时区
d=日期时间。从ISOFORMAT(“2020-10-15T03:39:42.766773+00:00”)
tz=时区(时间增量(小时=7))
新时间=d.astimezone(tz)

OP的输入是数据类型字符串,因为日期和时间之间仍然有“T”分隔符,因此可能需要pd.to_datetime;-)@Fuppes先生,谢谢你指出这一点。我从来没有注意到,
T
实际上是表示string fromat。我更新了我的答案。哦,还有一个警告<代码>'Etc/GMT+7'是UTC-7(不是+7)。不知道OP在这里期望什么。如果指定了某个时区会更容易。那么+7(雅加达)的语法是什么?@ab.trubex有时区
Asia/Jakarta
,因此您可以使用这个时区。OP的输入是dtype字符串,因为日期和时间之间仍然有“T”分隔符,所以可能需要pd.to_datetime;-)@Fuppes先生,谢谢你指出这一点。我从来没有注意到,
T
实际上是表示string fromat。我更新了我的答案。哦,还有一个警告<代码>'Etc/GMT+7'是UTC-7(不是+7)。不知道OP在这里期望什么。如果指定了某个时区会更容易。那么+7(雅加达)的语法是什么?@ab.trubex这里有时区
Asia/Jakarta
,所以你可以使用这个。再一次,我添加了df=pd.read\u csv('filename.csv')。除了这个任务有一个内置的pandas,我想你不应该建议在这里使用
替换
。虽然这适用于静态偏移量,但它会导致实际时区的错误偏移量(LMT),请参阅。再次,我添加了df=pd.read_csv('filename.csv')。除了此任务内置了一个pandas外,我认为您不应该建议在此处使用
替换
。虽然这适用于静态偏移,但会导致实际时区的错误偏移(LMT),请参阅。如何在pandas中进行协作?我们需要循环吗?有时间列表,可以使用循环。此代码段不需要熊猫。如何在熊猫中进行协作?我们需要循环吗?有时间列表,可以使用循环。这个片段不需要熊猫。