我正在使用Excel格式
0.6549
意味着我们一天只有65.49%。我如何将其转换为漂亮的时间,例如
15:30:42 PM
在Java中?
答案 0 :(得分:4)
试试这个:
public static void main(String[] args) throws Exception {
DateFormat format = new SimpleDateFormat("HH:mm:ss a");
format.setTimeZone(TimeZone.getTimeZone("UTC"));
for(String fracStr : args) {
double frac = Double.parseDouble(fracStr);
long day = (long) Math.floor(frac);
frac = frac - day;
Date time = new Date((long) ( 86400000l * frac));
System.out.println(fracStr+" -> "+format.format(time));
}
}
这里有一点注意事项--GMT时区可能无法获得您期望的结果,但UTC会。这是因为Java将GMT视为欧洲/伦敦的有效缩写,并且在1968年至1972年之间,伦敦是永久夏令时。 1970年1月1日午夜GMT(Java时代)也是1970年1月1日凌晨1点(GMT)。