我有一些双格式编号作为字符串上传文件,每个都等于特定时间如下:(实际上我必须将左手边转换为右边)
40981.0500559 = 13.03.2012 01:12:04.000
40981.0500676 = 13.03.2012 01:12:05.000
40981.0500792 = 13.03.2012 01:12:06.000
40981.0500910 = 13.03.2012 01:12:07.000
40981.0501025 = 13.03.2012 01:12:08.000
我尝试使用excel并找出前五位数显示日期和从1900年开始计数,这意味着00000.并且每天都会增加+1。其余7位数后。它显示从00:00:00到.0000000的时间和每0.0000116它在第二个时间内增加,直到达到0.9999999,再次等于00:00:00。但我真的很困惑在java中转换的方法。我试过这个:
//Time[j] = 40981.0500559 as string format**
double T = Double.parseDouble(Time[j])*100000000- 2766489481590L;
DateFormat formatter = new SimpleDateFormat("dd.MM.yyyy HH:mm:ss.FFF");
System.out.println(formatter.format(T));
但是当我更改输入值时,它会出错。例如,40993.2891410
应该变成25/03/2012 06:56:21.782
,但我知道上面的命令没有为所有数字校准。
答案 0 :(得分:0)
试试这个
long T = (long)(Double.parseDouble("40981.0500559")*100000000- 2766489481590L);
Date date=new Date(T);
DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss.F");
System.out.println(formatter.format(date));