字符串期间[重复项]

2021/01/17 00:21 · java ·  · 0评论

我在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分12秒
3天24分12秒

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

您还可以使用默认格式化程序,该格式多数情况下适用:

Period period = new Period(startDate, endDate);
System.out.println(PeriodFormat.getDefault().print(period))
    Period period = new Period();
    // prints 00:00:00
    System.out.println(String.format("%02d:%02d:%02d", period.getHours(), period.getMinutes(), period.getSeconds()));
    period = period.plusSeconds(60 * 60 * 12);
    // prints 00:00:43200
    System.out.println(String.format("%02d:%02d:%02d", period.getHours(), period.getMinutes(), period.getSeconds()));
    period = period.normalizedStandard();
    // prints 12:00:00
    System.out.println(String.format("%02d:%02d:%02d", period.getHours(), period.getMinutes(), period.getSeconds()));
PeriodFormatter daysHoursMinutes = new PeriodFormatterBuilder()
    .appendDays()
    **.appendSuffix(" day", " days")
    .appendSeparator(" and ")
    .appendMinutes()
    .appendSuffix(" minute", " minutes")**
    .appendSeparator(" and ")
    .appendSeconds()
    .appendSuffix(" second", " seconds")
    .toFormatter();

您错过了时间,这就是原因。几天后追加几个小时,问题就解决了。

本文地址:http://java.askforanswer.com/zifuchuanqijianzhongfuxiang.html
文章标签: ,   ,  
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!