首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于ZoneDateTime的PeriodFormatter

用于ZoneDateTime的PeriodFormatter
EN

Stack Overflow用户
提问于 2021-06-20 20:36:06
回答 1查看 31关注 0票数 1

PeriodFormatter在org.joda.time.And包中,它用于LocalDateTime.But想要用于Zonedatetime.Here的PeriodFormatter是下面的代码

代码语言:javascript
复制
  Period period = new Period(localtime1, localtime2, PeriodType.standard());

    PeriodFormatter dhm = new PeriodFormatterBuilder()
            .printZeroNever()
            .appendYears()
            .appendSuffix(" " + pickUpYear + " ", " " + pickUpYears + " ")
            .appendSeparator(" " + pickUpTimeSeparator + " ")
            .printZeroNever()
            .appendMonths()
            .appendSuffix(" " + pickUpMonth + " ", " " + pickUpMonths + " ")
            .appendSeparator(" " + pickUpTimeSeparator + " ")
            .printZeroNever()
            .appendDays()
            .appendSuffix(" " + pickUpDay + " ", " " + pickUpDays + " ")
            .appendSeparator(" " + pickUpTimeSeparator + " ")
            .printZeroNever()
            .appendHours()
            .appendSuffix(" " + pickUpHour + " ", " " + pickUpHours + " ")
            .appendSeparator(" " + pickUpTimeSeparator + " ")
            .printZeroNever()
            .appendMinutes()
            .appendSuffix(" " + pickUpMinute + " ", " " + pickUpMinutes + " ")
            .toFormatter();

    return dhm.print(period.normalizedStandard());

localtime1和localtime2是LocalDateTime object.But,我想用ZoneDateTime代替它。ZoneDateTime的替代方案是什么?

EN

回答 1

Stack Overflow用户

发布于 2021-06-20 20:52:39

相当于java.time的ZonedDateTime的Joda-Time被简单地称为DateTime。所以就用它吧。

代码语言:javascript
复制
    DateTimeZone zone = DateTimeZone.forID("Asia/Thimphu");
    DateTime dt1 = new DateTime(2021, 6, 19, 10, 0, zone);
    DateTime dt2 = new DateTime(2022, 6, 21, 14, 0, zone);
    
    Period period = new Period(dt1, dt2, PeriodType.standard());

    PeriodFormatter dhm = new PeriodFormatterBuilder()
            .printZeroNever()
            .appendYears()
            .appendSuffix(" y ", " ys ")
            .appendSeparator(" , ")
            .printZeroNever()
            .appendMonths()
            .appendSuffix(" m ", " ms ")
            .appendSeparator(" , ")
            .printZeroNever()
            .appendDays()
            .appendSuffix(" d ", " ds ")
            .appendSeparator(" ; ")
            .printZeroNever()
            .appendHours()
            .appendSuffix(" h ", " hs ")
            .appendSeparator(" : ")
            .printZeroNever()
            .appendMinutes()
            .appendSuffix(" m ", " ms ")
            .toFormatter();
    
    String result = period.toString(dhm);
    
    System.out.println(result);

输出:

1 y,2 ds;4 hs

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68055889

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档