gpt4 book ai didi

java - 从 Java 中的纪元时间返回 ISO-8601 时间格式(以天为单位)

转载 作者:行者123 更新时间:2023-11-29 07:25:39 26 4
gpt4 key购买 nike

我有一些 Java 代码可以从给定的纪元时间返回 ISO-8601 时间格式。

public String getISO8601(String epochTime) {
long epoch = Long.parseLong(epochTs);
ZoneId zone = ZoneId.of("Europe/London");
LocalDate then = Instant.ofEpochMilli(epoch).atZone(zone).toLocalDate();
LocalDate today = LocalDate.now(zone);
Period diff = Period.between(then, today);
return diff.toString();
}

当我将 epochTime 传递给它时:1512259200000

这个纪元时间是:Sun 2017-12-03 00:00:00

因此 getISO8601 方法将返回:P1Y

这太棒了!但是有什么办法可以确保它总是只在几天内返回...例如:P365D(而不是:P1Y)

最佳答案

不幸的是,Period 不允许指定单位,但您可以使用 until 方法来处理这个问题,指定您想要天数的差异:

public static Period getPeriodInDaysBetween(LocalDate from, LocalDate to) {
int days = (int) from.until(to, ChronoUnit.DAYS);
return Period.ofDays(days);
}

使用它而不是 Period.between,我相信它会做你想做的事。

(第一行等同于 MS90 的答案中的 ChronoUnit.DAYS.between(date1, date2)。使用你觉得更易读的那个。)

关于java - 从 Java 中的纪元时间返回 ISO-8601 时间格式(以天为单位),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53592513/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com