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