我有双格式数字作为字符串上传的文件,其中每个人都等于具体时间如下:(实际上,我必须将左侧转换到右侧)字符串数字日期和时间格式
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到00000000之间的时间,并且每个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
,但我知道上述命令没有针对所有号码进行校准。
这是Java的吗?请标记为这样。 – imulsion
[OLEDate java实现]的可能的重复(http://stackoverflow.com/questions/2599102/oledate-java-implementation) –
你有一个“OLE自动化日期”,又名“OLEDate”或“OADate”。您可以在[此MSDN文章](http://msdn.microsoft.com/en-us/library/system.datetime.tooadate.aspx)的“备注”一节中阅读它们。请参阅[此问题](http://stackoverflow.com/q/2599102/634824)或[此问题](http://stackoverflow.com/q/9733254/634824)在Java中使用它们。 –