在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,可将OADa​​te转换为日期时间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33849149/

10-12 22:41