【问题标题】:Jodatime - Custom ChronologyJodatime - 自定义年表
【发布时间】:2010-01-07 10:01:28
【问题描述】:

我想计算持续时间,而 1 天将包含 8 小时。 创建一个新的年表是正确的方法吗?

我确实尝试过创建自定义 Chronology 并使用以下内容覆盖 assemble 方法:

int millisPerDay = 1000 * 60 * 60 * 8;

fields.days = new PreciseDurationField(DurationFieldType.days(), millisPerDay);

但效果并不理想。

有什么建议吗?

提前谢谢你

【问题讨论】:

    标签: java jodatime


    【解决方案1】:

    为了回答我自己的问题,以下是完整的工作年表课程(每天 8 小时)。 我在这里发布它,以便它可以帮助其他试图解决类似问题的人。

    
    import org.joda.time.Chronology;
    import org.joda.time.DateTimeZone;
    import org.joda.time.DurationFieldType;
    import org.joda.time.field.PreciseDurationField;
    import org.joda.time.chrono.AssembledChronology;
    import org.joda.time.chrono.GregorianChronology;
    
    public final class EightHoursDayChronology extends AssembledChronology {
    
       private static final EightHoursDayChronology INSTANCE_UTC;
    
      static{
      INSTANCE_UTC = new EightHoursDayChronology(GregorianChronology.getInstanceUTC());
      }
    
    
      public static EightHoursDayChronology getInstance(){
           return INSTANCE_UTC  ;
      }
    
        private EightHoursDayChronology(Chronology base) {
            super(base, null);
        }
    
        @Override
       protected void assemble(org.joda.time.chrono.AssembledChronology.Fields fields) {
    
        int millisPerDay = 1000 * 60 * 60 * 8   ;
        fields.days = new PreciseDurationField(DurationFieldType.days(), millisPerDay)
      }
    
       @Override
      public Chronology withUTC() {
        return INSTANCE_UTC    ;
      }
    
        @Override
        public Chronology withZone(DateTimeZone zone) {
            throw new UnsupportedOperationException("Method was not implemented");
        }
    
        @Override
        public String toString() {
            return "EightHoursDayChronology";
        }
    
    }
    
    

    【讨论】:

      猜你喜欢
      • 2011-09-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-12
      相关资源
      最近更新 更多