我们从外部获取到的时间数据,是str类型的。如果时间的时区为UTC+0时区,要转成东八区来显示,可以按如下方法来操作。
1 2 3 4 5 6 7
| from datetime import datetime import pytz
format = "%Y-%m-%d %H:%M:%S" date = datetime.strptime("2022-04-01 12:00:00", format) converted_date = date.replace(tzinfo=pytz.utc).astimezone(pytz.timezone("Asia/Shanghai")) print(datetime.strftime(converted_date, format))
|
如果是在DataFrame里,比如从Excel里面读出来的数据。可用下面方法。
1 2 3 4 5 6 7
| import pandas as pd
df = pd.DataFrame(["2022-03-22 12:00:05", "2022-03-22 13:10:05"], columns=['date'])
df['date2'] = pd.to_datetime(df['date'], format="%Y-%m-%d %H:%M:%S") df['date3'] = df['date2'].dt.tz_localize(pytz.utc).dt.tz_convert("Asia/Shanghai").dt.strftime("%Y-%m-%d %H:%M:%S") df
|
这个dt
不能缺少,用于Datetime上面的。
1 2 3
| df['date2'].dt
<pandas.core.indexes.accessors.DatetimeProperties object at 0x7fbe14fd2f10>
|