在日期中转换 "using excel method" 数值 - java

Convert "using excel method" numeric value in date - java

我有一个整数,当我放在 Google 床单上时,它代表日期 14/10/1911(整数值为 4305)。

我需要使用 Java 在我的代码中进行同样的转换。所以我将有一个整数数组,它下降了 1 个因子(比如 4305、4304、4303...),我需要将这些整数转换为日期(14/10/1911、13/10/1911、 12/10/1911...) 使用与 excel/sheets 相同的方法。

有什么想法吗?

谢谢

    LocalDate msBaseDate = LocalDate.of(1899, Month.DECEMBER, 30);
    int[] integers = { 4305, 4304, 4303 };
    for (int integerValue : integers) {
        LocalDate date = msBaseDate.plusDays(integerValue);
        System.out.println(date);
    }

此片段的输出是:

1911-10-14
1911-10-13
1911-10-12

Excel 和其他 Microsoft 产品以及可能的其他软件也使用 1899 年 12 月 30 日作为基准日期,并将日期表示为从该日期开始的天数。所以只需将数字添加到该日期即可。我正在使用 java.time 中的 LocalDate,现代 Java 日期和时间 API。

问题:我可以在 Android 上使用 java.time 吗?

是的,java.time 在新旧 Android 设备上都能很好地工作。它只需要至少 Java 6.

  • 在 Java 8 及更高版本和较新的 Android 设备上(从 API 级别 26)内置了现代 API。
  • 在 Java 6 和 7 中获取现代 类 的 ThreeTen Backport(ThreeTen 用于 JSR 310;请参阅底部的链接)。
  • 在(较旧的)Android 使用 ThreeTen Backport 的 Android 版本。它叫做 ThreeTenABP。并确保使用子包从 org.threeten.bp 导入日期和时间 类。

链接