Java Joda time:如何将ReadablePartial规范化为预期字段?

Java Joda time:如何将ReadablePartial规范化为预期字段?,java,jodatime,Java,Jodatime,我想要一个功能,让调用方有选择地设置一些字段,但是一些ReadablePartial实现不会自动“规范化”。例如,如果在Partial类中设置“年”字段,“年代”字段不可读 我能应付年、月、日、时、分的田地。是否有调用可以对这些字段进行规范化处理?我使用Period类中内置的规范化代码解决了以下问题: public static void main(String[] args) throws Exception { Partial pa = new Partial().with(Date

我想要一个功能,让调用方有选择地设置一些字段,但是一些
ReadablePartial
实现不会自动“规范化”。例如,如果在
Partial
类中设置“年”字段,“年代”字段不可读


我能应付年、月、日、时、分的田地。是否有调用可以对这些字段进行规范化处理?

我使用Period类中内置的规范化代码解决了以下问题:

public static void main(String[] args) throws Exception {
    Partial pa = new Partial().with(DateTimeFieldType.halfdayOfDay(), 1).with(DateTimeFieldType.hourOfHalfday(), 3)
            .with(DateTimeFieldType.minuteOfHour(), 34);
    Period pr = new Period(zeroWithMatchingFields(pa), pa);
    p(pr.getHours()); // Returns 15
}

public static Partial zeroWithMatchingFields(ReadablePartial in) {
    AbstractPartial ap = in instanceof AbstractPartial ? (AbstractPartial) in : new Partial(in);
    int[] zeros = new int[ap.size()];
    return new Partial(ap.getFieldTypes(), zeros, in.getChronology());
}