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

标签 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 开始的时间,当它是 0.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 但我知道上面的命令并未针对所有数字进行校准。

最佳答案

试试这个

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

关于java - 字符串数字到日期和时间格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17621401/

相关文章:

java - MainActivity 上的 onActivityResult Intent 为 null

java - 将unicode写入rtf文件

c# - 如何检查 .NET 中的字符串是否为数字?

python - 获取两个日期 Pandas 之间的周数

php - 运行插入查询最多 5 分钟 MySql

java - 在 Java 8 中遇到 - JDK-8023339 : j. u.Arrays.asList().removeIf() 是 "lazy"抛出 java.lang.UnsupportedOperationException

java - 如何在 Java 中返回 5 个随机的 "Powerball"数字

javascript - 仅替换字符串之间的特殊字符,而不是字符串的开头和结尾?

比较 C 中从第 x 个字符开始的字符串 (C)

python - pandas.to_datetime 包含最后两位数字的年份