在date - java中转换“使用excel方法”数值

问题描述 投票:-4回答:1

我有一个整数,当我放入Google表格时,它表示日期为14/10/1911(整数值为4305)。

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

有任何想法吗?

谢谢

java android excel date date-conversion
1个回答
1
投票
    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,现代类的后端(JST 310的ThreeTen;请参见底部的链接)。
  • 在(较旧的)Android上使用Android版的ThreeTen Backport。它被称为ThreeTenABP。并确保从org.threeten.bp导入子包的日期和时间类。

链接

© www.soinside.com 2019 - 2024. All rights reserved.