< prev index next >

src/java.base/share/classes/java/time/OffsetDateTime.java

Print this page
rev 55940 : [mq]: 8211990

*** 1,7 **** /* ! * Copyright (c) 2012, 2018, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this --- 1,7 ---- /* ! * Copyright (c) 2012, 2019, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Oracle designates this
*** 1652,1663 **** */ @Override public long until(Temporal endExclusive, TemporalUnit unit) { OffsetDateTime end = OffsetDateTime.from(endExclusive); if (unit instanceof ChronoUnit) { end = end.withOffsetSameInstant(offset); ! return dateTime.until(end.dateTime, unit); } return unit.between(this, end); } /** --- 1652,1669 ---- */ @Override public long until(Temporal endExclusive, TemporalUnit unit) { OffsetDateTime end = OffsetDateTime.from(endExclusive); if (unit instanceof ChronoUnit) { + OffsetDateTime start = this; + try { end = end.withOffsetSameInstant(offset); ! } catch (DateTimeException ex) { ! // end may be out of valid range. Adjust to end's offset. ! start = withOffsetSameInstant(end.offset); ! } ! return start.dateTime.until(end.dateTime, unit); } return unit.between(this, end); } /**
< prev index next >