如何将“一天的分数”转换为Java时间?

时间:2011-04-12 14:30:55

标签: java excel datetime time

我正在使用Excel格式

0.6549

意味着我们一天只有65.49%。我如何将其转换为漂亮的时间,例如

15:30:42 PM

在Java中

1 个答案:

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