简体   繁体   English

将Matlab串行时间戳转换为java.util.Date

[英]Convert matlab serial timestamp to java.util.Date

I have a matlab serial timestamp 735628.631944 and need to be converted it to java.util.Date 29.01.2014 15:10:00 . 我有一个matlab串行时间戳735628.631944 ,需要将其转换为java.util.Date 29.01.2014 15:10:00

it is very easy to convert in excel 在excel中转​​换非常容易

string timestamp = serialTimestamp - 693960

select the timestamp in Excel can convert it to custom format (TT.MM.JJJ hh:mm:ss) 在Excel中选择时间戳可以将其转换为自定义格式(TT.MM.JJJ hh:mm:ss)

but how does it work internally? 但是它在内部如何运作? is there any formula for converting it in java ? 有什么公式可以在Java中转换吗?

I get matlab serial timestamp from a CSV file and I am parsing it in Java. 我从CSV文件中获取了matlab串行时间戳,并用Java进行了解析。 I require Java code for this conversion. 我需要Java代码进行此转换。

Matlab time is a number of days since 1/0/0000, but java.util.Date constructor expecs number of milliseconds since 1/1/1970, therefore Matlab时间是自1/0/0000以来的天数,但是java.util.Date构造函数自1970年1月1日以来的毫秒数,因此

double timestamp = 735628.631944;
Date d = new Date((long)( (timestamp - 719529) * 86400000 ));

Here 719529 is a matlab timestamp for 1/1/1970 and 86400000 number of milliseconds in one day. 这里的719529是1970年1月1日的Matlab时间戳,一天中的毫秒数为86400000。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM