Permalink
Fetching contributors…
Cannot retrieve contributors at this time
203 lines (197 sloc) 9.23 KB
/*
* Copyright (c) 2007-2011, Stephen Colebourne & Michael Nascimento Santos
*
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
*
* * Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
*
* * Neither the name of JSR-310 nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
0.7
===============================================================================
- Add OffsetDate.toInstant()
- OffsetDate.isAfter/Before takes into account offset
- OffsetTime.isAfter/isBefore calculation
- OffsetTime.compareTo fixed
- OffsetDateTime.compareTo doesn't handle nanos
- Add OffsetDate.atTime(OffsetTime)
- Ensure date-time plus/minus uses long not int
- Fix Period.of(Duration)
- Add LocalTime/OffsetTime/LocalDateTime/OffsetDateTime/ZonedDateTime.plus/minus(Duration)
- Remove CopticDate/HistoricDate.isLeapDay()
- Add CopticDate.plusWeeks()
- Change factories on I18N dates to take Calendrical, not DateProvider
- Rename ZoneOffsetTransition.getDateTime() to getDateTimeBefore()
- Rename TimeZone to ZoneId (avoids annoying clash with JDK)
- Fix clock hour of day and of am-pm
- Fix/Weaken contract of CalendricalRule comparator
- Change period units to be standalone class for ISO
- Remove generics from DateTimeFieldRule
- Rework DateTimeFields, adding DateTimeField
- Move units and rules from ISOChronology to their own classes as field constants
- Rename DateTimeFieldRule to DateTimeRule
- Add A and N formatting letter
- Change formatting letter x to Y
- Change formatting letters E and Q to work like M
- Add narrow style to formatting
- Add X formatting letter to match current Java, with more power
- Change formatting letter Z to match current Java, with more power
- Rename DateTimeParseContext.setParsed to avoid invalid overload
- Always hold parsed date-time data as DateTimeField
- Remove DateTimePrinter.isPrintDataAvailable()
- Change DateTimePrinter to take StringBuilder not Appendable
- Remove CalendricalPrintFieldException
- Use ArithmeticException in date classes
- Add DateTimePrintContext
- Rename DateTimeFormatterProvider to DateTimeFormatStyleProvider
- Obtain text from DateTimeTextProvider (remove code from DateTimeRule)
- Alter/simplify getText() methods in enums
- Refactor DateTimeFormatSymbols and integrate
- Add DateTimeRuleRange to replace DateTimeRule min/max methods
- Add WeekRules
- Add PeriodUnit.field(long)
- Add with methods to UTCInstant/TAIInstant
- Rename ModifiedJulianDays/EpochDays/EpochSeconds/EpochMillis/EpochNanos to remove plural
- Remove weekend code from main build (currently in extras)
- Add ofInstantUTC factories to ZDT, ODT, OD, OT
- Remove Comparable, PeriodUnit, PeriodRange, ID and Chronology from CalendricalRule
- Remove isXxx() methods from enums
- Rename CalendricalRule.getReifiedType() to getType()
- Combine ZoneId.getName() and getShortName() into getText()
- Rename WeekOfMonth to AlignedWeekOfMonth, similarly for WeekOfYear
- Remove getChronology() in most places, Use get(Chronology.rule()) instead
- Rewrite merging
- Factories from Calendrical varargs
- LocalDate constants for MIN_DATE/MAX_DATE (using Year.MIN_VALUE Jan 1/MAX_VALUE Dec 31)
- LocalTime constants for MIN_TIME/MAX_TIME (using MIN = MIDNIGHT, and MAX = 23:59:59.999999999)
- LocalDateTime constants for MIN_DATE_TIME/MAX_DATE_TIME (combining min and max from LocalDate/LocalTime)
- Year.parse(String), Year.parse(String,DateTimeFormatter) and toString(DateTimeFormatter)
- SystemUTCRules now load leap second data from binary JAR entry
- TZDBZoneRulesCompiler now also compiles leap second information from TZDB files
- Parse methods use CharSequence
- Remove DateProvider, TimeProvider, DateTimeProvider, as they created unreliable APIs
- Refactor PeriodUnit
- Rename getEstimatedDuration() to getDurationEstimate()
- ZoneResolver refactored
- Remove LocalTime.Overflow, embedding code in LocalDateTime
- Rename DateTimeFormatter methods for clarity
- Move TimeDefinition to rule class from builder
- Remove DateAdjuster/TimeAdjuster from Offset* classes and clarify with methods
- Add parseBest to handle optional parsing
- Moved packages
- Merged Clock and TimeSource
- Removed UTC/TAI
0.6.3
===============================================================================
- nanoOfDay rule / epochDays rule
- Use public factories for ZOT and ZOTR rather than protected methods in ZRules
- Make CalendricalRule.compare less lenient
- Add TAIInstant.parse()
- Print/parse two digit years
- Add Period.toEstimatedDuration()
- Rename PeriodFields.normalize() to normalizeTo()
- Add PeriodFields.normalize()
- Add Period.of(Duration)
- Make LocalDate.plus(PeriodProvider)/minus(PeriodProvider) strict
- Remove DatePeriod, adding methods to Period
- Add Period.withDateFieldsOnly()/withTimeFieldsOnly()
- Add Period.ofDateFields()/ofTimeFields()
- Rename Period.ofYearsMonthsDays() to ofDateFields()
- Rename Period.ofHoursMinutesSeconds() to ofTimeFields()
- LocalDateTime/LocalTime/Year/YearMonth.plus(PeriodProvider) have correct algorithm
- ZoneOffset period factory
- ZDT int factories
- YearMonth.with(Year)
- LocalTime plus/minus shouldn't throw ArithmeticException
- Remove InstantProvider from UTC/TAI
- OffsetTime.withOffset/adjustLocalTime method names changed
- Add isLeapYear() to other principal date classes
- Fix bug in Offset* now(Clock)
- Rename nowSystemClock() to now()
- MonthOfYear - start/end of month as DOY
- Add Chronology CalendricalRule
- Change ISO year range to -999,999,999 to 999,999,999
- Add OffsetDateTime.of(DateProvider,OffsetTime)
- Add LocalDate.atTime(OffsetTime)
- Remove toYear() from principal classes
0.6.2
===============================================================================
- PeriodFields.toTotal(Unit)
- PeriodFields.normalize(Unit...)
- Rename/add methods on PeriodUnit
- Add Year/YearMonth/MonthDay.now(Clock)
- Add LocalDate.isLeapYear()
- Rework time-scales
- less public classes
- simplified UTC should always have 86400 seconds per day
- TAI and UTC
- pluggable leap seconds
- ZoneRulesGroup loads rules, whereas it should just load keys initially
- Specialised data format for zone-rules
- SPI and zone providers
- TimeZone special factory to create unavailable instances
0.61
===============================================================================
- getYearMonth(), getMonthDay()
- withXxx() taking Year, MonthOfYear - with(Adjuster)
- zone prev/next transition
- parse API is too complex to parse Date/Time due to merge
- Date/Time parse factories
- DateTimeMatcher -> CalendricalMatcher
- test separable comparators for providers -> CalendricalRule implements Comparator
- isJanuary() ?
- isMonday() ?
- Period rules?
- period units in chronologies?
- Year.of() Duration.of() plus big static class?
- parse optional needs to store and drop back Calendrical properly
- withDayOfYear() tests and everywhere
- toDays() etc, if we keep those classes
- Year.atDay()
- LocalDate.atTime(int...)
- review in line with changes to Duration
- ZonedDateTime plusDurationSeconds() etc
- public access to transitions and transition rules
- OffsetInfo, discontinuity rename to transition
- parse zone
EDR
===============================================================================
- OffsetDate.atTime(int...)
- zone rule where time of day is 24:00
- versions of zone data files
- convert time zone rules to fixed rules when possible
- simpler way to setup pattern - DateTimeFormatters.forPattern()
- Factory now(Clock)
- optimise Clock methods to Local* avoiding Offset* object creation
- better error when zone jar file missing
- setup list of deprecated time zone ids
- ZonedDateTime toEpochSeconds()
- OffsetDateTime.fromEpochSeconds()
- ZonedDateTime.fromEpochSeconds()
- Duration/Instant rename millis() to ofMillis() etc
- Duration/Instant integrate TimeUnit
- Rename factory methods to start with 'of'
- LocalDate.plus(PeriodProvider) needs correct algorithm
- Period.ofXxx factory rename