【问题标题】:How do I convert "fraction of day" to Java time?如何将“一天的分数”转换为 Java 时间?
【发布时间】:2011-04-12 14:30:55
【问题描述】:

我正在使用 Excel 格式

0.6549

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

下午 15:30:42

在 Java 中?

【问题讨论】:

    标签: java excel datetime time


    【解决方案1】:

    试试这个:

    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 视为 Europe/London 的有效缩写,并且在 1968 年至 1972 年间,伦敦实行永久夏令时。所以格林威治标准时间 1970 年 1 月 1 日午夜(Java 时代)也是 1970 年 1 月 1 日凌晨 1 点(格林威治标准时间)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-05
      • 1970-01-01
      • 2021-11-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多