字符串数字到日期和时间格式

时间:2013-07-12 18:12:54

标签: java string datetime

我有一些双格式编号作为字符串上传文件,每个都等于特定时间如下:(实际上我必须将左手边转换为右边)

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,但我知道上面的命令没有为所有数字校准。

1 个答案:

答案 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));