Releases: bxparks/AceTime
Releases · bxparks/AceTime
0.5 - ZoneManager allows dynamic creation of TimeZone
- 0.5 (2019-07-21, TB DB version 2019a, beta)
- Remove over-engineered
SystemClockHeartbeatLoop
and
SystemClockHeartbeatLoop
and replace with just a call to
SystemClock::keepAlive()
. - Remove overly complex
ManualZoneProcessor
and merge most of its
functionality directly into theTimeZone
usingkTypeManual
. We lose
the manual abbreviations provided byManualZoneProcessor
but the
simplification of using just theTimeZone
object without an extra object
seems worth it. - Add a stable
zoneId
toZoneInfo
that identifies a zone. It is
formed using a hash of the fully qualified zonename
. The
tzcompiler.py
generator script will detect hash collisions and create an
alternate hash. - Rename old
ZoneManager
as theZoneRegistrar
, and
repurposeZoneManager
as theTimeZone
factory, which keeps an internal
cache ofZoneProcessor
.TimeZone
objects can be dynamically bound to
ZoneProcessor
objects usingcreateForZoneInfo()
,
createForZoneName()
, `createForZoneId(). - Add
TimeZoneData
data struct to allow serialization of a TimeZone object
as a zoneId so that it can be reconstructed using
ZoneManger::createForTimeZoneData()
. - Rename
ZoneSpecifier
toZoneProcessor
to describe its functionality
better.ZoneInfo
is now passed directly into the TimeZone object using
theTimeZone::forZoneInfo()
factory method, with theZoneProcessor
acting as a helper object.
- Remove over-engineered
0.4 - store zoneinfo files in PROGMEM
- 0.4 (2019-07-09, TZ DB version 2019a, beta)
- Support the less-than-or-equal syntax
{dayOfWeek}<={dayOfMonth}
appearing in version 2019b of the TZ Database which containsRule Zion, 2005 to 20012, IN Apr, ON Fri<=1
. - Add BasicZoneManager and ExtendedZoneManager to retrieve ZoneInfo
from TZ Database string identifier (e.g. "America/Los_Angeles"). - Add configuration options (
ACE_TIME_USE_BASIC_PROGMEM
and
ACE_TIME_USE_EXTENDED_PROGMEM
) to place zoneinfo
files into PROGMEM to save static RAM.
- Support the less-than-or-equal syntax
0.3.1 - add copyright notices to source files
- 0.3.1 (2019-06-30, beta)
- Add copyright notices on source files.
- Fix typos and formatting of
README.md
andUSER_GUIDE.md
. - No functional change from 0.3.
0.3 - support Link entries from TZ Database
- 0.3 (2019-06-28, beta)
- Support
Link
entries from TZ Database files as C++ references to
correspondingZone
entries. - Add
backward
andetctera
files from TZ Database to the tzcompiler.py
processing.ExtendedZoneSpecifier
now supports every Zone and Link
entry in the TZ Database (except those inbackzone
andsystemv
). - Add better zone and link name normalization. Convert
+
into_PLUS_
,
all other non-alphanumeric (0-9a-zA-Z_) converted to underscore_
. - Move validation unit tests into separate
tests/validation
directory.
Use Makefiles to generatevalidation_data.*
files dynamically at compile
time.
- Support
0.2 - better handling of gaps and overlaps in wall time with some date normalization
- 0.2 (2019-06-26, alpha)
- Reduce flash memory size of WorldClock by removing extra font.
- Split
USER_GUIDE.md
fromREADME.md
. - Rename
ace_time::provider
toace_time::clock
and rename
SystemTimeProvider
toSystemClock
. - Add
HelloSystemClock
example code. - Add
isValidYear()
into variousforComponents()
methods to check
int8_t range of year component. - Rename
DateStrings::weekDay*()
methods todayOfWeek*()
for
consistency. - Change
ZonedDateTime::printTo()
format to match Java Time format. - Remove
friend
declarations not related to unit tests. - Remove redundant definitions of
kInvalidEpochSeconds
, standardize on
LocalDate::kInvalidEpochSeconds
. - Make
timeOffset
a required parameter for constructors and factory
methodsOffsetDateTime
instead of defaulting toTimeOffset()
. - Make
timeZone
a required parameter in constructors and factory methods
ofZonedDateTime
. - Fix
BasicZoneSpecifier::getOffsetDateTime()
to handle gaps and overlaps
in a reasonable way, and perform some amount of normalization.
0.1 - initial release
- 0.1 (2019-06-15)
- Initial release on GitHub to establish a reference point.