在Matlab中,我有一个从C#中的System.DateTime转换为OADate的双打列表。在Matlab中,我可以轻松地将其转换为这样的列表:
symbol1TsData = datetime(symbol1TsDataDouble,'ConvertFrom', 'datenum');
Python中的等效项是什么?我试过了,但是回来的日期是错误的:
symbol1TsData = list(map(datetime.fromtimestamp, symbol1TsDataDouble))
最佳答案
我认为这可以做到。 OLE时间是从1899年开始,到12月30日午夜(奇怪吗?!)的天数(不是像纪元那样的秒!)。
This可能也有帮助。
#ole time conversion
import datetime
OLE_TIME_ZERO = datetime.datetime(1899, 12, 30, 0, 0, 0)
def ole_to_epoch(ole):
""" Input: ole - float. Gives ole time, the number of DAYS since midnight 12/30/1899
Output: float - epoch time
"""
x = OLE_TIME_ZERO + datetime.timedelta(days=float(ole))
return (x - datetime.datetime(1970,1,1)).total_seconds()
关于python - 与Matlab函数等效的Python,可将OADate转换为日期时间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33849149/