[英]Convert WRF UTC time to Local time
我必須從我擁有的一堆 WRFout 文件中制作空間圖。 目前,我正在使用以下代碼行打印每個空間 plot 的相應時間
#..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 hours)
。
在此先感謝,任何建議將不勝感激。
您可以使用 pandas 進行轉換。您可以選擇適合您的時區。 剛剛添加了有用的片段。
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])
這可能會有所幫助。
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"))
Output:
2017-03-02 00:00:00+00:00
2017-03-02 05:30:00
現在我的時區是 UTC+5:30(印度)。 所以,表明這一點。 你的應該給你的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.