我希望能够将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
。
答案 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;
}