我正在通過Python查看netcdf文件,netcdf文件上的日期是138276,這是自2000-01-01 00:00:00以來的小時數。此日期對應於10月7日。我如何將自2000-01-01 00:00:00以來的138276小時的日期轉換爲2015-10-07 00:00:00的格式?如何將相對日期轉換爲絕對日期?
3
A
回答
4
您可以使用dt.strptime
到您的字符串解析爲一個日期時間對象,然後構造一個dt.timedelta
對象,並設置PARAM hours=your_val
添加所需的小時數:
In [25]:
import datetime as dt
dt.datetime.strptime('2000-01-01 00:00:00', '%Y-%m-%d %H:%M:%S') + dt.timedelta(hours=138276)
Out[25]:
datetime.datetime(2015, 10, 10, 12, 0)
這我不清楚你怎麼在到達目標日期爲2015-010-07
當它是2015-10-10
?
6
由於起始日期是恆定的,創建一個DateTime對象,只是增加你想using datetime.timedelta任何時間:
from datetime import datetime, timedelta
start = datetime(2000,1,1,0,0,0)
new = start + timedelta(hours=138276)
print(new)
2015-10-10 00:00:00
答案也2105-10-10
沒有2015-10-07
1
有timedelta
增量小時正常。你的日期計算有點離譜。
from datetime import datetime, timedelta
old_date = '2000-01-01'
curr_date = datetime.strptime(old_date, '%Y-%m-%d') + timedelta(hours=138276)
print(curr_date)
2015-10-10 12:00:00
要更改輸出格式,更改curr_date
注意:如果你使用的是netCDF4包
print(curr_date.strftime('%Y%m%d%H'))
2015101012
4
,你應該使用num2date
功能。
In [1]: from netCDF4 import num2date
In [2]: date = num2date(138276, 'hours since 2000-01-01 00:00:00', calendar='standard')
In [3]: date
Out[3]: datetime.datetime(2015, 10, 10, 12, 0)
最有可能的,你的netCDF時間變量,也有在那裏的單位和日曆,所以你可能不需要硬編碼的。實際上,num2date函數將採用日期列表或數組。
相關問題
- 1. 如何將UTC日期轉換爲本地日期對象?
- 2. 如何將格式化日期轉換爲日期對象Java
- 3. 如何將字符串日期轉換爲日期類對象
- 4. 轉換對象爲日期
- 5. 如何將日期日期轉換爲英文日期格式?
- 6. Adf - 將RichInputDate轉換爲日期對象
- 7. JavaScript將秒轉換爲日期對象
- 8. 將日期對象轉換爲TimeWithZone
- 9. 將session.lastAccessedTime轉換爲javascript日期對象
- 10. 將對象轉換爲日期
- 11. 將文本轉換爲日期對象
- 12. 將對象轉換爲日期時間
- 13. 將字符串日期轉換爲日期對象
- 14. 將字符串日期轉換爲日期對象
- 15. 將Twitter XML日期轉換爲Python日期對象
- 16. Js將日期對象轉換爲python日期時間
- 17. 將GMT日期字符串轉換爲本地日期對象
- 18. 熊貓將日期(季度)轉換爲日期時間對象
- 19. 將人類可讀的日期轉換爲java日期對象
- 20. 將日期字符串轉換爲Javascript中的日期對象
- 21. 將java對象轉換爲日期或日期時間
- 22. 將oracle日期字段對象轉換爲java日期
- 23. 將日期字符串轉換爲日期時間對象
- 24. 將日期字符串轉換爲日期對象Javascript
- 25. Perl - 將日期時間戳轉換爲日期時間對象
- 26. 將Android的日期字符串轉換爲日期對象
- 27. 將日期字符串轉換爲日期對象
- 28. 將Google電子表格日期轉換爲JS日期對象?
- 29. 如何將長期轉換爲日期?
- 30. 將日期轉換爲MongoDB ISO日期
不知道你在這段日期/時間裏添加了那些小時後是如何得到'2015-10-07 00:00:00'的? – EdChum