将DateTime格式转换为Matlab日期序列号格式

时间:2014-04-24 11:00:54

标签: c# winforms matlab datetime format

我希望能够将DateTime(2012/12/31 10-21-17.617)转换为Matlab采用的十进制数(日期序列号)。

我已将Matlab日期序列号转换为日期时间格式(yyy/mm/dd HH:mm:ss.fff),方法是:

DateTime conv = new DateTime(1, 1, 1).AddDays(734139.045000000040).AddYears(-1)

然而,我希望能够做到与上述相反。我知道.NET日期从0001/01/01开始,对于Matlab,它是0000/00/00

1 个答案:

答案 0 :(得分:0)

除非我遗漏了某些东西,否则一个简单的方法就是TimeSpan.TotalDays(http://msdn.microsoft.com/en-us/library/system.timespan.totaldays.aspx

从任意点到您尝试转换的DateTime创建一个时间跨度,然后根据需要调整偏移量,使其变为matlab格式。 添加了代码示例

    private DateTime MatlabToNET(double days)
    {
        return new DateTime(1, 1, 1).AddDays(days).AddYears(-1);
    }

    private double NETtoMatlab(DateTime dt)
    {
        TimeSpan ts = dt - new DateTime();
        return ts.TotalDays + 365;
    }