- Remove setuptools fossils.
- Drop support for Python 3.7.
- Remove Python2 compatiblity code.
- Change pickle format to export the microseconds as an int, to solve a problem with dates after 2038. (#56)
- Fix
UnknownTimeZoneError
when unpicklingDateTime.DateTime().asdatetime()
. (#58) - Repair equality comparison between DateTime instances and other types. (#60)
- Add support for Python 3.12.
- Add preliminary support for Python 3.13a2.
- Cast int to float in compare methods.
- Fix compare methods between DateTime instances and None. (#52)
- Add missing
python_requires
tosetup.py
.
- Drop support for Python 2.7, 3.5, 3.6.
- Fix insidious buildout configuration bug that prevented tests on Python 2.7 and 3.5, and fix test code that was incompatible with Python 3.5. (#44)
- Add support for Python 3.11.
- Fix rounding problem with DateTime addition beyond the year 2038 (#41)
- Fix
__format__
method for DateTime objects (#39)
- Add
__format__
method for DateTime objects (#35)
- Fix WAT definition #31.
- Add support for Python 3.8, 3.9, and 3.10.
- Drop support for Python 3.4.
- Add support for Python 3.7.
- Add support for Python 3.6, drop support for Python 3.3.
- Support unpickling instances having a numeric timezone like +0430.
- Add support for Python 3.4 and 3.5.
- Drop support for Python 2.6 and 3.2.
- Provide more backward compatible timezones. [vangheem]
- Added support for Python 3.2 and 3.3 in addition to 2.6 and 2.7.
- Removed unused legacy pytz tests and the DateTimeZone module and renamed some test internals.
- Allow timezone argument to be a Unicode string while creating a DateTime object using two arguments.
- LP #1045233: Respect date format setting for parsing dates like 11-01-2001.
- Add _dt_reconstructor function introduced in DateTime 2.12.7 to provide forward compatibility with pickles that might reference this function.
- No changes.
DateTime 3 changes its pickle representation. DateTime instances pickled with former versions of DateTime can be read, but older DateTime versions cannot read DateTime instances pickled with version 3.
DateTime 3 changes DateTime to be a new-style class with slots instead of being an old-style class.
DateTime 3 tries to preserve microsecond resolution throughout most of its API's while former versions were often only accurate to millisecond resolution. Due to the representation of float values in Python versions before Python 2.7 you shouldn't compare string or float representations of DateTime instances if you want high accuracy. The same is true for calculated values returned by methods like timeTime(). You get the highest accuracy of comparing DateTime values by calling its micros() methods. DateTime is not particular well suited to be used in comparing timestamps of file systems - use the time and datetime objects from the Python standard library instead.
- Allow comparison of DateTime objects against None.
- Reverted the single argument None special case handling for unpickling and continue to treat it as meaning now.
- Restored strftimeFormatter as a class.
- Added tests for read-only class attributes and interface.
- Added back support for reading old DateTime pickles without a _micros value.
- Avoid storing _t representing the time as a float in seconds since the epoch, as we already have _micros doing the same as a long. Memory use is down to about 300 bytes per DateTime instance.
- Updated exception raising syntax to current style.
- Avoid storing _aday, _fday, _pday, _amon, _fmon, _pmon, _pmhour and _pm in memory for every instance but look them up dynamically based on _dayoffset, _month and _hour. This saves another 150 bytes of memory per DateTime instance.
- Moved various internal parsing related class variables to module constants.
- No longer provide the DateError, DateTimeError, SyntaxError and TimeError exceptions as class attributes, import them from their canonical DateTime.interfaces location instead.
- Removed deprecated _isDST and _localzone class variables.
- Moved pytz cache from DateTime._tzinfo to a module global _TZINFO.
- Make DateTime a new-style class and limit its available attributes via a slots definition. The pickle size increases to 110 bytes thanks to the ccopy_regn_reconstructor stanza. But the memory size drops from 3kb to 500 bytes for each instance.
- Reordered some calculations in _calcIndependentSecondEtc to preserve more floating point precision.
- Optimized the pickled data, by only storing a tuple of _micros and time zone information - this reduces the pickle size from an average of 300 bytes to just 60 bytes.
- Optimized un-pickling, by avoiding the creation of an intermediate DateTime value representing the current time.
- Removed in-place migration of old DateTime pickles without a _micros value.
- Removed deprecated support for using DateTime.__cmp__.
- Take time zone settings into account when comparing two date times for (non-) equality.
- Fixed (possibly unused) _parse_iso8601 function.
- Removed unused import of legacy DateTimeZone, strftime and re. Remove trailing whitespace.
- Removed reference to missing version section from buildout.
- Added forward compatibility with DateTime 3 pickle format. DateTime instances constructed under version 3 can be read and unpickled by this version. The pickled data is converted to the current versions format (old-style class / no slots). Once converted it will be stored again in the old format. This should allow for a transparent upgrade/downgrade path between DateTime 2 and 3.
- Changed
testDayOfWeek
test to be independent of OS locale.
- Launchpad #143269: Corrected the documentation for year value behavior when constructing a DateTime object with three numeric arguments.
- Launchpad #142521: Removed confusing special case in DateTime.__str__ where DateTime instances for midnight (e.g. '2010-07-27 00:00:00 US/Eastern') values would render only their date and nothing else.
- Fixed mapping of EDT (was -> 'GMT-0400', now 'GMT-4').
- Added EDT timezone support. Addresses bug #599856. [vangheem]
- Launchpad #572715: Relaxed pin on pytz, after applying a patch from Marius Gedminus which fixes the apparent API breakage.
- Removed an undeclared testing dependency on zope.testing.doctest in favor of the standard libraries doctest module.
- Added a maximum version requirement on pytz <= 2010b. Later versions produce test failures related to timezone changes.
- Launchpad #290254: Forward-ported fix for '_micros'-less pickles from the Zope 2.11 branch version.
- Include all pytz zone names, not just "common" ones.
- Fix one fragile doctest, band-aid another.
- Fix for launchpad #267545: DateTime(DateTime()) should preserve the correct hour.
- DateTime conversion of datetime objects with non-pytz tzinfo. Timezones() returns a copy of the timezone list (allows tests to run).
- Merged the slinkp-datetime-200007 branch: fix the DateTime(anotherDateTime) constructor to preserve timezones.
- Split off from the Zope2 main source code tree.