Java 句点到字符串

我在Java中使用Joda-Time库。我在尝试将Period对象转换为“ x天,x小时,x分钟”格式的字符串时遇到了一些困难。

这些Period对象首先通过向它们添加一定数量的秒来创建(它们以秒为单位序列化为XML,然后从它们重新创建)。如果仅在其中使用getHours()等方法,则得到的全部为零,并且使用getSeconds 的总秒数。

如何让Joda计算相应字段(例如天,小时等)中的秒数?

回答:

你需要对周期进行归一化,因为如果用总秒数构造周期,则这是它唯一的值。对其进行归一化会将其分解为天,分钟,秒等的总数。

通过ripper234编辑 -添加TL; DR版本:PeriodFormat.getDefault().print(period)

例如:

public static void main(String[] args) {

PeriodFormatter daysHoursMinutes = new PeriodFormatterBuilder()

.appendDays()

.appendSuffix(" day", " days")

.appendSeparator(" and ")

.appendMinutes()

.appendSuffix(" minute", " minutes")

.appendSeparator(" and ")

.appendSeconds()

.appendSuffix(" second", " seconds")

.toFormatter();

Period period = new Period(72, 24, 12, 0);

System.out.println(daysHoursMinutes.print(period));

System.out.println(daysHoursMinutes.print(period.normalizedStandard()));

}

将打印:

24 minutes and 12 seconds

3 days and 24 minutes and 12 seconds

因此,你可以看到非标准化期间的输出仅忽略了小时数(它没有将72小时转换为3天)。

以上是 Java 句点到字符串 的全部内容, 来源链接: utcz.com/qa/403370.html

回到顶部