Python 将WRF UTC时间转换为本地时间

Python 将WRF UTC时间转换为本地时间,python,matplotlib,Python,Matplotlib,我必须从我拥有的一堆WRFout文件中绘制空间图。目前,我正在使用以下代码行打印每个空间图的相应时间 #..Load packages import os import netCDF4 import numpy as np import matplotlib import matplotlib.pyplot as plt from mpl_toolkits.basemap import Basemap,addcyclic,cm,shiftgrid from wrf import getvar,g

我必须从我拥有的一堆WRFout文件中绘制空间图。目前,我正在使用以下代码行打印每个空间图的相应时间

#..Load packages
import os
import netCDF4
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
from mpl_toolkits.basemap import Basemap,addcyclic,cm,shiftgrid
from wrf import getvar,get_basemap,to_np,latlon_coords

#..Read the files
fpath = sorted(glob.glob("/path/wrfout_d01_2017-03-02_00:00:00"))
with netCDF4.Dataset(fpath, 'r') as fin:

#..Read variables
p  = getvar(fin,'pressure')
times = getvar(fin,'times',meta=False)

#..Make the pressure plot
fig = plt.figure()
mp = get_basemap(p)
x,y = mp(to_np(lons),to_np(lats))
cntrs = mp.contourf(x,y,p,cmap='jet')
plt.title(str(to_np(times))[0:-10])
plt.show()
times
变量以
2017-03-02T00:00:00.000000000
格式给出时间

代码行
plt.title(str(to_np(times))[0:-10])
将时间打印为
2017-03-02T00:00:00
,这是UTC时间。但是,我希望它打印为
2017-03-01 17:00:00
,这是当地时间
(UTC-7小时)

提前谢谢,任何建议都将不胜感激。

这可能会有所帮助

import datetime

dt=datetime.datetime.strptime("2017-03-02T00:00:00", "%Y-%m-%dT%H:%M:%S") #Get your datetime object
dt=dt.replace(tzinfo=datetime.timezone.utc) #Convert it to an aware datetime object in UTC time.
print(dt) #You do not need this line. For show only :P
dt=dt.astimezone() #Convert it to your local timezone
print(dt.strftime("%Y-%m-%d %H:%M:%S"))
输出:

2017-03-02 00:00:00+00:00
2017-03-02 05:30:00

现在我的时区是UTC+5:30(印度)。所以,展示这一点。您的应提供您的。

您可以使用熊猫进行转换。您可以选择适合您的时区。 刚刚添加了有用的代码片段

import pandas as pd

#..Read variables
...
times = getvar(fin,'times',meta=False)
mountainTime = pd.Timestamp(times,tz='US/Mountain')

#..Make the pressure plot
...
plt.title(str(mountainTime)[0:-6])

使用熊猫确实有帮助。谢谢,很简单。