如何将“一小部分”转换为Java时间?

我正在用Excel格式在哪里

0.6549

意味着我们是一天中的65.49%。 如何将这个转换成一个好看的时间,如

15:30:42 PM

在Java中?

尝试这个:

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日凌晨1点(格林尼治标准时间)也是1970年1月1日凌晨1点(格林尼治标准时间)。