Date::M...Changes6(3)

๐Ÿ’– Date::Manip::Changes6 โ€” the 6.xx glow-up log ๐Ÿ’–

okay bestie, this is the Date::Manip::Changes6(3) page, i.e. the receipts for everything that changed in Date::Manip across the whole 6.xx era. every release, every fix, every "oops we shipped a broken MANIFEST" moment. no cap, it's all here.


๐ŸŒธ SYNOPSIS ๐ŸŒธ

This describes the changes made to the Date::Manip module in the 6.xx series of releases. Major changes are marked with asterisks (*).

For the most part, Date::Manip has remained backward compatible at every release, but occasionally, a change is made which is backward incompatible. These are marked with an exclamation mark (!).

the next major version is still just vibes and a plan, so here's the commented-out note about it:
#=head1 VERSION 7.00 (expected 2025-03-01)
#    Remove DM5
#    Remove TZ variable
#    Remove Jan1Week1 variable

โœจ VERSION 7.00 (expected 2026-09-01) โœจ

Not a major release

This is NOT a major release change. It is simply a bump of one minor version from 6.99. There are no current plans for another major release. (iconic of it to just say that plainly, honestly)

CPAN email contact removed

As of April, CPAN no longer forwards emails, so the old cpan.org email address is no longer a supported contact method and has been removed. ๐Ÿ’€

Reported in GitHub #53

Time zone fixes

Newest zoneinfo data (tzdata 2026c). ๐ŸŒ


๐ŸŒˆ VERSION 6.99 (2026-03-02) ๐ŸŒˆ

Time zone fixes

Newest zoneinfo data (tzdata 2026a).


๐Ÿฆ‹ VERSION 6.98 (2025-06-01) ๐Ÿฆ‹

Time zone fixes

Newest zoneinfo data (tzdata 2025b).


โญ VERSION 6.97 (2025-03-02) โญ

Fix to avoid warnings in perl 5.41.*

The newest development version of perl gives 'possible precedence problem' warnings for a few lines. Those lines have been fixed by adding some parentheses to avoid any precedence ambiguity. (the parentheses ate, fr fr)

Reported in GitHub #51

Added a requested alternative to 'ago'.

Requested in GitHub #50

Time zone fixes

Newest zoneinfo data (tzdata 2025a).


๐ŸŽ€ VERSION 6.96 (2024-12-04) ๐ŸŽ€

Time zone fixes

There were no new timezone fixes on 2024-06-01 or 2024-09-01, so no release made then. (a little gap, a little rest, self care)

Newest zoneinfo data (tzdata 2024b).


๐Ÿ’œ VERSION 6.95 (2024-03-01) ๐Ÿ’œ

Better support for weeks of the year

Added the Week1ofYear config variable and deprecated the Jan1Week1 variable. The first week of the year can now be specified much more easily. ๐Ÿ‘‘

Support for the standard POSIX strftime directives in printf

The Date::Manip::Date::printf method uses a set of directives which is similar, but not identical, to the POSIX strftime directives.

A new config variable Use_POSIX_Printf has been added. If set, the printf method will use the POSIX strftime directives more fully (see the PRINTF DIRECTIVES section in the Date::Manip::Date POD for more information).

Reported in GitHub #48

Time zone fixes

Newest zoneinfo data (tzdata 2024a).


๐Ÿ“ VERSION 6.94 (2024-01-09) ๐Ÿ“

Time zone fixes

The 6.93 release didn't include the windows timezone aliases from GitHub #46. Pointed out by Mike Capella.

Newest zoneinfo data (tzdata 2023d).

Documentation fixes

Fixed a grammatical issue. GitHub #49


๐Ÿ’… VERSION 6.93 (2023-12-01) ๐Ÿ’…

Bug fixes

Bug where Date::Manip::TZ::convert wasn't returning an error code if an invalid date was passed in. GitHub #47.

Time zone fixes

Updated the windows timezone aliases. They were out-of-date. See GitHub #46.

Test fixes

In the test scripts, changed RELEASE_TESTING variable. Now use a release-specific testing variable rather than RELEASE_TESTING. See GitHub #17 in my Locale-Codes module for details.


๐ŸŒธ VERSION 6.92 (2023-06-07) ๐ŸŒธ

Time zone fixes

Newest zoneinfo data (tzdata 2023c).

Documentation fixes

Typo fix. Reported by Derek Terveer


๐Ÿ”ฅ VERSION 6.91 (2023-03-01) ๐Ÿ”ฅ

Fixed bug where timezone alias wasn't handled

On linux systems configured to be in a timezone that is an alias, the system timezone wasn't recognized, and it defaulted to GMT. This is now fixed. Patch supplied by Sandi Wallendahl (GitHub #43)


๐Ÿงš VERSION 6.90 (2022-12-02) ๐Ÿงš

Time zone fixes

Aliases in the tzdata database were not being added to the timezone data. Reported in GitHub issue #40.

The UTC timezone is now named Etc/UTC instead of UTC to be in line with the aliases. (a rebrand, we love to see it)

Newest zoneinfo data (tzdata 2022g).

Language fixes

Additions to the Polish translation. GitHub issue #41.

Additions to several languages. GitHub issue #42.

Added some support for per-language parsing rules to respond to GitHub issue #42.

Documentation fixes

The version numbers in the change log was messed up due to a skipped release (no new timezone fixes that time). Fixed.


โš ๏ธ VERSION 6.89 (2022-09-01) โš ๏ธ

(!) Date::Manip 5.xx interface to be removed

The old version of Date::Manip (version 5.xx) has been distributed as part of the package in order to support versions of perl older than 5.10. I see no valid reason to continue to support that, so as of version 7.00, Date::Manip will only include the newer interfaces (which require perl 5.10 or newer). There are no plans to deprecate the functional interface.

heads up bestie, that ! means backward-incompatible energy. things are leaving in 7.00.

Time zone fixes

Newest zoneinfo data (tzdata 2022c).


๐Ÿ’€ VERSION 6.88 (2022-06-02) ๐Ÿ’€

Packaging problem.

I generated a broken MANIFEST file in the previous release. Reported in GitHub issue #39.


๐Ÿ™ˆ VERSION 6.87 (2022-06-01) ๐Ÿ™ˆ

Bug fixes

The package was being generated with an incorrect MANIFEST file. This is now fixed. RT 140075

Time zone fixes

There were no new timezone fixes on 2022-03-01, so no release made then.

Newest zoneinfo data (tzdata 2022a).


๐Ÿ’œ VERSION 6.86 (2021-11-15) ๐Ÿ’œ

Change warn to carp

All warnings are now issued with the carp command rather than warn. Requested in GitHub pull request #18, but that request was not used because it only changed the uses in the Date::Manip::Date module.

Bug fixes

Fixed a bug where the next/prev Date::Manip::Recur methods gave incorrect results when there are no dates that match the criteria. (GitHub #36)

Time zone fixes

There were no new timezone fixes on 2021-06-01 or 2021-09-01, so no releases made then.

Newest zoneinfo data (tzdata 2021e). (GitHub #37)


๐ŸŽ€ VERSION 6.85 (2021-03-01) ๐ŸŽ€

Test fixes

Missed some tests that were failing.


๐ŸŒˆ VERSION 6.84 (2021-03-01) ๐ŸŒˆ

Time zone fixes

Newest zoneinfo data (tzdata 2021a).

Language fixes

Corrections and additions to Italian. Patch supplied by Leo Cacciari (GitHub #33)


๐Ÿ“ VERSION 6.83 (2020-12-01) ๐Ÿ“

Time zone fixes

No new zoneinfo data so no release on 2020-09-01.

Newest zoneinfo data (tzdata 2020d). Requested by Shawn Carroll (GitHub #32)


โญ VERSION 6.82 (2020-06-01) โญ

Time zone fixes

Newest zoneinfo data (tzdata 2020a).


๐Ÿฆ‹ VERSION 6.81 (2020-03-01) ๐Ÿฆ‹

Messed up the 6.80 package. This release fixes it.


๐ŸŒธ VERSION 6.80 (2020-03-01) ๐ŸŒธ

Missed Changes entry for previous version.

Reported by Tina Muller (GitHub #31)


๐Ÿ’– VERSION 6.79 (2019-12-01) ๐Ÿ’–

Time zone fixes

Newest zoneinfo data (tzdata 2019c).


๐Ÿ’… VERSION 6.78 (2019-08-29) ๐Ÿ’…

Time zone fixes

Newest zoneinfo data (tzdata 2019b).

Documentation fixes

Fixed a broken link. Mohammad S Anwar (GitHub #29)


๐Ÿ”ฅ VERSION 6.77 (2019-06-01) ๐Ÿ”ฅ

Time zone fixes

Newest zoneinfo data (tzdata 2019a).


๐Ÿงš VERSION 6.76 (2019-03-01) ๐Ÿงš

Fixed bug in Date::Manip::Date::list_holidays.

It was using 'now' instead of the stored date. Douglas DeStafeno

Reordered TZ detection methods

Moved checking the tzdata files to lower priority to avoid a pretty unusual situation in docker. Sven Nierlein (GitHub #20)

Time zone fixes

Newest zoneinfo data (tzdata 2018i). Requested by Shawn C Carroll (GitHub #28)


๐Ÿ’€ VERSION 6.75 (2018-12-03) ๐Ÿ’€

Fixed packaging problems

Version 6.74 was not packaged correctly. Version wasn't set correctly in a few files and there were invalid entries in Makefile.PL. RT 127870.


๐Ÿ™ˆ VERSION 6.74 (2018-12-01) ๐Ÿ™ˆ

Removed travis file from the tarball

The tarball had a .travis.yml file in it that wasn't in the MANIFEST file. Since the MANIFEST file is automatically generated by the perl mkmanifest tool, since it didn't see the .travis.yml file, I have excluded it from the tarball. Reported by Mohammad S Anwar on GitHub (#23)

Time zone fixes

Newest zoneinfo data (tzdata 2018e)


๐Ÿ’œ VERSION 6.73 (2018-09-01) ๐Ÿ’œ

Fixed math on non-64-bit architectures

Much of the math in Date::Manip::Base is in a 'use integer' section. This math can overflow in some cases in non-64-bit architectures. Fixed the cases where this would reasonably occur. Reported by Daniel Albers (GitHub #22). Also reported and tested in RT 126052.

Bug in normalizing estimated business deltas

While working on the non-64-bit issue, it uncovered a bug where normalizing estimated business deltas was wrong. It had never been reported, and it was only off by a couple seconds in some rare situations. (a sneaky little bug, caught by accident, we love a two-for-one)


๐ŸŽ€ VERSION 6.72 (2018-06-06) ๐ŸŽ€

Fixed recurrence bug

The fix in the previous version for a rare recurrence problem broke another recurrence form. It is now corrected. Michael Schout (GitHub #20)

Fixed version problem

The wrong version was included in two files for some reason. This is fixed.

Documentation fixes

Fixed a grammatical error reported by Xavier Guimard (GitHub #19).


๐ŸŒˆ VERSION 6.71 (2018-06-01) ๐ŸŒˆ

Fixed an extremely rare problem with recurrences

It is possible to specify a recurrence that never produces a valid date. In these cases, looking for dates went into an infinite loop. The MaxRecurAttempts config variable was added which will stop that from happening. If no occurrence was found, an error condition will be set. Dean Hamstead (RT 123708)

Changes file supported

It was requested that I include a valid Changes file. I wrote a simple script to convert the Change6.pod file into a valid Change file. The Changes6.pod file is still the canonical source of this information! Requested by H. Merijn Brand

Fix for timezone determination

On MacOS X High Sierra, some of the timezone files were symlinks, but not properly followed. This was fixed by Stu Tomlinson (GitHub #15).

Time zone fixes

Newest zoneinfo data (tzdata 2018e)

Documentation fixes

Minor fix provided by Mohammad S Anwar (GitHub #17)

VERSION 6.70 (2018-03-01) ๐ŸŽ€

(*) (!) Changes to deltas ๐Ÿ’…

Okay so bestie, the delta handling got a glow-up. Improved handling of deltas to better support the different types of deltas, and formalized how the semi-exact portions of the delta are used to produce the results that most people would expect.

The type can now be specified to guarantee several behaviors. Changed the arguments (in a backward compatible way) to several methods. Explicitly added a new type (estimated) which was there previously, but could not be manually specified. iconic behavior tbh

The convert function continues to support converting from a less exact type to a more exact type, but this is deprecated and will be removed in version 7.00. ๐Ÿซถ

This was prompted by a bug reported by Ian Gibbs. (thank u Ian!!)

(*) (!) Deprecated some parts of Date::Manip::Delta ๐Ÿ˜ญ

The options passed to the set and parse methods have changed. The old style will be removed in version 7.00.

Deltas will also no longer support the 'exact' and 'approximate' strings (which have not been supported for some time). These will be removed in 7.00 as well.

Deprecation of TZ postponed ๐ŸŒธ

The deprecation of the TZ variable has been postponed to version 7.00. (she lives another day bestie)

Some speed improvements ๐Ÿ”ฅ

I converted some of the functions to use faster algorithms. Previously, the steps were worked out using logical time/calendar based calculations. These were replaced with non-intuitive numerical calculations that gave the same result faster. she's fast AND correct, we love a multitasker

Changed behavior if timezone not determined ๐Ÿฆ‹

If the system timezone cannot be determined using any of the methods supplied by Date::Manip, operations will be done in the GMT timezone. Previously, Date::Manip would simply fail to load. Based on a report by Kent Fredric (RT 123229).

Fixed Makefile.PL โœจ

The list of what what is provided did not include the path to the file providing each module. I've fixed the Makefile.PL as well as the META files. Graham Knop (GitHub #13)

Time zone fixes ๐ŸŒˆ

Newest zoneinfo data (tzdata 2018c)

Documentation fixes ๐ŸŽ€

Rewrote Date::Manip::Delta page to reflect changes, and clean up the documentation in general.


VERSION 6.60 (2017-09-01) ๐Ÿ’–

Bug fixes ๐Ÿ›

Fixed a bug where if a recurrence had no interval, start and end dates passed in to the dates method would not work. PJ-DSI-DevOps (GitHub #12).

Documentation fixes โœจ

Clarified Date::Manip::TZ::all_periods. Based on discussion with Peter Pfannenschmid.


VERSION 6.59 (2017-06-01) ๐Ÿฆ‹

Time zone fixes ๐ŸŒˆ

Newest zoneinfo data (tzdata 2017b)

Documentation fixes ๐ŸŽ€

Improved some of the documentation.


VERSION 6.58 (2017-03-01) โญ

Better support for $mode in DateCalc. ๐Ÿ’…

DateCalc (in DM6) did not support all values for $mode. Now it does. periodt.

Bug fixes ๐Ÿ›

Parsing a date like 01/02/2016 and calling printf with %e gave '02' instead of ' 2'. Robert Wohlfarth (RT 119787).

Fixed a problem where the tzdata method of determining the timezone was producing an error which wasn't correct. John (GitHub #8)

Time zone fixes ๐ŸŒˆ

Newest zoneinfo data (tzdata 2017a)


VERSION 6.57 (2016-12-01) ๐ŸŒธ

Time zone fixes ๐ŸŒˆ

Newest zoneinfo data (tzdata 2016j)

Test fixes ๐Ÿงช

A faulty test was failing in a few places. RT 118705

Another test was failing due to a perl bug that popped up in 5.25.7. Tweaked the test to bypass the bug. Kent Fredric (RT 118862)


VERSION 6.56 (2016-09-09) ๐Ÿ˜ญ

Test fixes ๐Ÿงช

A faulty test was failing most places. New release to correct that problem. Slaven Rezic (RT 117404)


VERSION 6.55 (2016-09-01) ๐Ÿซถ

Fixed bug where $::TZ wasn't used ๐Ÿ’€

The $::TZ variable was not getting interpreted correctly when searching for a timezone. Steven Hartland (RT 114949)

Fixed bug where recurrences were not parsed correctly ๐Ÿ›

Passing in incorrect values for a field was not trapped in all cases and it led to problems. All values passed in to a recurrence are now correctly checked. Albert Hilazo (GitHub #7).

Fixed a bug in some methods of creating new objects ๐Ÿ”ง

Some methods of creating new objects based on existing objects did not correctly use the existing object. Bug has never been reported, but was discovered when adding tests to get 100% coverage. ngl that's lowkey detective work

Time zone fixes ๐ŸŒˆ

Newest zoneinfo data (tzdata 2016f)

Test fixes ๐Ÿงช

Added a number of new tests based on Devel::Cover.


VERSION 6.54 (2016-05-31) ๐ŸŽ€

Deprecation of Date::Manip 5.xx tests ๐Ÿ‘‘

By default, the Date::Manip 5.xx tests will no longer run. Changes to the timezone data can cause failures. Since Date::Manip 5.xx is no longer supported in any way, these tests will no longer run on a system where 6.xx can be run. Richard Jelinek.

Deprecation of TZ postponed ๐ŸŒธ

The deprecation of the TZ variable has been postponed to March 2017. I decided that 1 year was not enough notice (especially since not everyone will have updated Date::Manip since March 2015 when the warning was added.

Bug fixes ๐Ÿ›

Changed requirement for ExtUtils::MakeMaker to 6.67_01. Quin Arnold (RT 112286)

Fixed a bug where a timezone abbreviation was not parsed correctly when passed in as a value to the SetDate, ForceDate, or TZ config variables. Based on a report in perlmonks.org.

Time zone fixes ๐ŸŒˆ

Newest zoneinfo data (tzdata 2016d)

Made some improvements to how I handled the timezone data which resulted in a few of the default timezones being changed.

Documentation fixes โœจ

Fixed one more typo. Gregor Herrmann (RT 114095)

Clarified the Config document. Based on a report in perlmonks.org.


VERSION 6.53 (2016-03-02) ๐Ÿฆ‹

Bug fixes ๐Ÿ›

Date::Manip::Delta::cmp had a bug in it's comparison. Ian Gibbs.

The secs_since_1970_GMT method was missing a test to see if it was a valid object. Michael Stevens (RT 111915)

Time zone fixes ๐ŸŒˆ

Newest zoneinfo data (tzdata 2016a)

Documentation fixes โœจ

Lots of typos fixed. I was using podspell to do spell checking, but it was discarding too much real text (which wasn't getting checked as a result). Switched to pod2text which does a better job. Gregor Herrmann (RT 110025)


VERSION 6.52 (2015-12-01) ๐Ÿ’–

Added date ranges on unmodified dates in Recur ๐Ÿ—“๏ธ

The date range can now be specified for either the fully modified dates, or the unmodified dates. This will make it easier to work with holidays in some instances. Based on http://perlmonks.org/?node_id=1148735.

Added IWn and NWn recurrence modifiers โœจ

Based on http://perlmonks.org/?node_id=1148735.

(!) Reworked holidays slightly ๐ŸŽ‰

Previously, every line in the Holidays section defined a unique holiday. Now, the names determine the list of holidays.

It is not allowed to have two separate holidays named exactly the same. It IS allowed to have complex holidays that require two (or more) lines in the Holidays section to define them completely.

Based on http://perlmonks.org/?node_id=1148735.

Bug fixes ๐Ÿ›

Fixed a bug where the RecurRange config variable wasn't getting used.

Fixed a bug where some deltas were not parsed correctly as dates. Salvatore Bonaccorso (RT 109600)

Time zone fixes ๐ŸŒˆ

Newest zoneinfo data (tzdata 2015g)

Test fixes ๐Ÿงช

Added a number of new tests based on Devel::Cover.


VERSION 6.51 (2015-09-01) โญ

Changes suggested by perlcritic ๐Ÿ”

Played with perlcritic and made a few minor changes based on it's suggestions. I doubt I will use perlcritic significantly.

(!) Date::Manip::Delta::value now returns an empty string ๐Ÿ˜ญ

If a delta has an error, or no valid delta in it, the value method returns an empty string instead of undef. This is to be consistent with the Date::Manip::Date::value method which returns an empty string.

Bug fixes ๐Ÿ›

Fixed a bug where date/delta calculations with deltas that are too large was not working correctly. They now set an error condition and fail. Jared Selengut (RT 105737)

Fixed a bug introduced by the previous patch and luckily discovered pre-release by Tom Wyant.

Fixed code that produced a warning in 5.22.0. Tom Wyant

Improved DM6 ParseDate and ParseDateString ๐Ÿ’…

Added @opts argument. Based on report by Vitaly Shupak (RT 105622).

Time zone fixes ๐ŸŒˆ

Newest zoneinfo data (tzdata 2015f)

Now uses /etc/localtime as a method to determine the local timezone. Patch supplied by Tom Wyant (RT 105159) (modified by me). The patch uses some code derived from DateTime::TimeZone .

Clearer message when the date is not valid in the timezone.

Test fixes ๐Ÿงช

Added a number of new tests based on Devel::Cover. Over the next several releases, I intend to continue to add tests until coverage is 100%.

Documentation fixes โœจ

Fixed a typo. Gregor Herrmann (RT 105546)


VERSION 6.50 (2015-06-01) ๐ŸŽ€

Bug fixes ๐Ÿ›

Not really a bug, but 6.49 got a bunch of NYTprof data bundled with it by mistake. It's been removed. Olivier Mengue (RT 103252)

Fixed a bug where information about whether a date was complete or truncated was discarded. Jim Avera

Fixed a bug where SetDate with a zone alias failed.

Added the Format_MMMYYYY config variable to allow the truncated format mmmYYYY to be parsed instead of mmmDDYY. David W. Morganwalp and Glenn Golden (RT 103142)

Fixed Makefile.PL/Build.PL to correct for a change on perl on windows which changes a module prereq requirement. Alexandr Ciornii

Time zone fixes ๐ŸŒˆ

Newest zoneinfo data (tzdata 2015d)

Added aliases for older HP-UX time zones. H. Merijn Brand (RT 104141)

Documentation fixes โœจ

Fixed URL for tzdata. Mohammad S Anwar (GitHub #3).

Better POD formats.

Fixed a documentation error. Glenn Golden (RT 103966)


VERSION 6.49 (2015-03-01) ๐Ÿ’œ

Added a deprecation warning ๐Ÿšจ

The TZ config variable is going away. Added a deprecation warning.

Some speedups for timezone handling ๐Ÿ”ฅ

Based on a report by Glenn Golden (RT 102284), I have done some optimization of the timezone handling code.

Bug fixes ๐Ÿ›

Added the missing is_date base method to Date::Manip::Base. Mario Domgoergen.

Time zone fixes ๐ŸŒˆ

Newest zoneinfo data (tzdata 2015a)

Language fixes ๐ŸŒ

A number of corrections by Nicholas Riley

๐Ÿ’– VERSION 6.48 (2014-12-01) ๐Ÿ’–

๐Ÿš€ Put repository on GitHub

  • Suggested by Gabor Szabo

๐Ÿ•ฐ๏ธ parse_time now parses ISO 8601 times

The parse_time routine wouldn't correctly parse ISO 8601 times. This is now fixed. No cap, bestie, it's fixed. โœจ

๐ŸŒ Parsing special dates with timezones now works

Parsing special date formats with timezones is now supported, such as:

Christmas at noon PST
in 3 days at noon PST
now PST
epoch 3000000 PST

๐Ÿ”ง dm_zdump modified

To match the newest version of zdump, the gmtoff is now added at the end of each line.

๐Ÿ› Bug fixes

  • Fixed a bug in the printf method that would not handle embedded newlines correctly (and resulted in an infinite loop if it were preceded by a '%'). Henrique Martins
  • Fixed a bug where '24:00' was not parsed correctly (though '24:00:00' was).
  • Fixed a bug where fractional values separated by a comma weren't parsed correctly.

๐ŸŒŽ Time zone fixes

  • Newest zoneinfo data (tzdata 2014j)

๐ŸŒธ VERSION 6.47 (2014-09-01) ๐ŸŒธ

๐ŸŒŽ Time zone fixes

  • Newest zoneinfo data (tzdata 2014f)

๐Ÿ—ฃ๏ธ Language fixes

  • Fixed some encoding errors in the language pod documentation.

๐Ÿฆ‹ VERSION 6.46 (2014-07-08) ๐Ÿฆ‹

๐Ÿ’” Broken distribution

  • The distribution contained an temporary edit file that caused problems. Alexandr Ciornii (RT 96459)

๐ŸŒŽ Time zone fixes

  • Newest zoneinfo data (tzdata 2014e)

๐Ÿ—ฃ๏ธ Language fixes

  • Added some plural abbreviations that were missing. Glenn Golden (RT 96944)

๐ŸŽ€ VERSION 6.45 (2014-06-05) ๐ŸŽ€

๐Ÿงช Fixed a test

  • One test was failing (reported by Constantine Peresypkin (RT 96249) as well as several CPAN Tester reports).

โœจ VERSION 6.44 (2014-06-01) โœจ

(*) Improvements to UTF8 handling

A number of changes based on a report and other discussion with Yuri Nikulin (RT 93545) including:

  • Case insensitive matching of UTF8 strings should work all the time.
  • Fixed two significant bugs in regexps for parsing dates.
  • Improvements to UTF8 handling.
  • Corrected some problems with Russian and added the cp1251 encoding.
  • One correction to Romanian.
  • Added several new test scripts.
  • Preliminary patches were supplied by Yuri.

๐Ÿ†• New features

  • Modified the parse_format function to return %+ if desired. Mike Cappella

๐ŸŒŽ Time zone fixes

  • Newest zoneinfo data (tzdata 2014c)

๐Ÿ“ Documentation fixes

  • Clarified some DM6 functions. David Close.
  • Fixed a typo. Mike Cappella (RT 95619)

๐ŸŒˆ VERSION 6.43 (2014-03-03) ๐ŸŒˆ

๐Ÿ“ฆ Several changes to distribution files

I made several changes to Build.PL, Makefile.PL, META.yml in order to improve the quality (or kwalitee) of the module. None of these should impact anyone using the module.

๐ŸŒŽ Time zone fixes

  • Newest zoneinfo data (tzdata 2013i)

๐Ÿ“ Documentation fixes

  • Cleaned up some of the Recur documentation. Suggested by Warren Young (RT 92794)

๐Ÿ’œ VERSION 6.42 (2013-12-02) ๐Ÿ’œ

๐Ÿ†• Added ParseDateFormat function

  • Added the ParseDateFormat function to the DM6 functional interface in response to Eli Lindsey (RT 89286).

๐Ÿ†• Added Common Log format

  • Added the date format used in apache logs: 11/Oct/2000:13:55:36 -0700 Eli Lindsey (RT 89286).

๐ŸŒŽ Time zone fixes

  • Newest zoneinfo data (tzdata 2013h)

๐Ÿ› Bug fixes

  • Fixed a bug where dates of the form of a delta with a timezone attached (i.e. "1 day ago at midnight UTC") failed. Ludovic Lange (RT 89256)
  • Fixed a bug where events handling gave a warning if there were no events that applied. RT 90344

๐ŸŒŸ VERSION 6.41 (2013-09-05) ๐ŸŒŸ

๐Ÿ› Bug fixes

  • Removed a .swp file accidentally left in the package. RT 85845
  • Fixed a bug in parse_format where times between 00:00:00 and 01:00:00 weren't parsed correctly. Ole Nomann Thomsen
  • Fixed generated META.* files to not require Module::Build 0.39. Carsten Wolff (RT 86137)
  • Fixed a bug where parse_format did not work with a '%s' format. Mark Keisler (RT 87498)
  • Fixed a bug where find_encoding wasn't imported from the Encode module. Krishna Subramanian (RT 87665)
  • Fixed a bug where recurrences with no interval did not work if a start and end date were specified, and no dates fell in that range. Jan Pradac

๐ŸŒŽ Time zone fixes

  • Newest zoneinfo data (tzdata 2013d)

๐Ÿงš VERSION 6.40 (2013-06-01) ๐Ÿงš

๐Ÿ—‘๏ธ Removed PODs

POD documentation is no longer generated for Date::Manip::TZ::* and Date::Manip::Offset::* modules.

๐ŸŒŽ Time zone fixes

  • Newest zoneinfo data (tzdata 2013c)

๐Ÿ‘‘ VERSION 6.39 (2013-03-01) ๐Ÿ‘‘

๐Ÿ†• Added the $mode argument to ParseDateDelta

The ParseDateDelta function (in functional interface) did not allow you to force a parsed delta to semi or approx where appropriate. This was added. Based on RT 82991.

๐Ÿ†• Added get_config method

The get_config method was added to all classes. Suggested by Philippe Poilbarbe.

๐Ÿ—ฃ๏ธ Language fixes

  • Fixed a German language problem. Gosta Oelstrom

๐Ÿ“ Documentation fixes

  • Documented workaround for dmake problem in strawberry perl. Discussed on perlmonks and Martin Thurn (RT 79837).
  • Clarified the Examples page. Winston Heng

๐Ÿ’€ VERSION 6.38 (2013-01-08) ๐Ÿ’€

(*) Tar file format corrected

Problems were reported on several OSes by people unable to install Date::Manip (and other modules). It turns out that the version of tar distributed by my linux distro (OpenSuSE) uses the 'posix' format instead of the traditional 'gnu' format by default. This causes problems for some versions of tar. I have had reports from OSX, Windows, and SunOS. Future versions of Date::Manip will be explicitly distributed in the 'gnu' tar archive format.

Reported by Jay Allen and John Ralls (RT 80594).

(*) Date::Manip 5.xx end-of-life

Date::Manip 5.xx is now officially out of support. I will not be doing any further work on it. The only exception is that I will consider adding user supplied patches on a case-by-case basis.

If at all possible, please use Date::Manip 6.xx instead.

(!) Removed some deprecated config variables

The following config variables have been removed.

IntCharSet
RecurNumFudgeDays

๐Ÿ“ VERSION 6.37 (2012-12-01) ๐Ÿ“

๐Ÿ› Bug fixes

  • Fixed a bug where ISO 8601 format YYYY-WXX-D didn't work if the week ended up in December. Gordon Lugauer.

๐ŸŒŽ Time zone fixes

  • Newest zoneinfo data (tzdata 2012j)

๐Ÿ“ Documentation fixes

  • Spelling error fixed. RT 80621

๐ŸŽˆ VERSION 6.36 (2012-10-31) ๐ŸŽˆ

๐Ÿ”ข Fix version numbers

This was an interim release to fix the version numbers (6.35 was released with all of the version numbers 6.34).


๐Ÿ› ๏ธ VERSION 6.35 (2012-10-31) ๐Ÿ› ๏ธ

๐Ÿ›ค๏ธ Fix PATH

This version was an interim release to fix the problem with the PATH being replaced.

๐Ÿ—‘๏ธ Removed dependency on YAML

I've reverted the language data files to perl literals instead of YAML. Though not quite as easy to maintain, it solves a few problems. Patch provided by Christopher Madsen.

๐Ÿ› Bug fixes

  • Last versions fix for RT 78566 overrode the PATH even when that wasn't appropriate. This is fixed. Report and patch supplied by Tom Wyant (RT 80435).

๐Ÿž VERSION 6.34 (2012-09-04) ๐Ÿž

This is a bug fix so that the PATH won't break non-unix installs.

๐Ÿ› Bug fixes

  • Put the PATH inside the Unix section so it doesn't affect non-unix environments. Geoff Rowell

๐Ÿ’ซ VERSION 6.33 (2012-09-01) ๐Ÿ’ซ

โœจ Improvements to Date::Manip::Delta

  • Added convert method. This had been planned since 6.30, but based on a discussion with Henrique Martins, I moved it up in priority.
  • Cleaned up handling of delta field lengths (they are now only calculated once.
  • Added cmp method. Henrique Martins

๐Ÿ› Bug fixes

  • The language modules read from the DATA section, but I never closed the filehandle. This is fixed now. Patch by Doru Theodor Petrescu
  • Added better loading of DM5/DM6 modules. Evan Carroll (RT 78152)
  • Added a secure PATH to TZ.pm for taint reasons. In response to Dan Pritts (RT 78566)

๐ŸŒŽ Time zone fixes

  • Now supports timezones in files with spaces where there should be underscores. This occurs in RHEL desktop. Dan Pritts (RT 78566)
  • Newest zoneinfo data (tzdata 2012e)

๐Ÿ“ Documentation fixes

  • Minor fix. Henrique Martins

๐Ÿง VERSION 6.32 (2012-06-01) ๐Ÿง

๐Ÿ”ง Modified Build.PL

Build.PL now has better support for building (or not building) HTML files. Apparently this is slow on Windows. Patch provide by Manoj Kumar (RT 75118)

๐Ÿ› Bug fixes

  • Fixed a bug in business day calculations. Frederic Briere (RT 76336)
  • Fixed a bug where Delta/Recur objects weren't correctly created. Zsban Ambrus
  • Fixed a bug where SetDate/ForceDate config variables could not be included in a file. Jerry Wilcox

๐ŸŒŽ Time zone fixes

  • Newest zoneinfo data (tzdata 2012c).

๐Ÿ“ Documentation fixes

  • Better support for UTF-8 in autogenerated language module pod files.

๐ŸŒˆ VERSION 6.31 (2012-03-01) ๐ŸŒˆ

okay bestie, so first up: the printf method got extended formats! โœจ These include the %<A=NUM>, %<a=NUM>, %<v=NUM>, %<B=NUM>, %<b=NUM>, %<p=NUM>, and %<E=NUM> formats. Shoutout to Chris Jackson for that one. ๐Ÿ’–

  • Can now parse formats where the time and zone are not adjacent โ€” so a string like 'Jan 21 17:13:27 2010 -0400' can now be parsed. This was requested on perlmonks (the 'Can Date::Manip parse a unix timestamp' thread). ๐Ÿฆ‹
  • Added PeriodTimeSep config variable โ€” this lets you use a period as a time separator. Thanks Ed Avis! ๐ŸŽ€
  • Holidays can be used as date strings โ€” you can now parse a holiday name in the Date::Manip::Date::parse method. For example, parse('Christmas'). Requested by Abigail. ๐ŸŒธ
  • Added new recur modifiers โ€” we got WDn, IBD, and NBD modifiers now. ๐Ÿ’…
  • Added a new date format โ€” you can now parse '2nd day in May' formats. Randy Harmon came through. ๐Ÿ”ฅ
  • More flexibility in parsing timezones with both offset and abbrev โ€” if you include both the offset and abbreviation in the timezone portion of a date, the parenthesis around the abbreviation are now optional, so you can parse both:
-04:00 (EDT)
-04:00 EDT

Requested by Steven Melendez. ๐Ÿซถ

  • Deltas now support fractional values โ€” you can now use a delta of 1.5 days. Martin Thurn (RT 42699) said periodt. ๐Ÿ˜ญ
  • Multiple holidays supported โ€” a date may now have multiple holidays. Keith Minkler with the assist. ๐Ÿ‘‘

๐Ÿž Bug fixes

  • Fixed a bug where abbreviations were not being examined case insensitively. Jurgen Muck ๐Ÿฆ‹
  • The Holidays section may be safely split across multiple config files. A bug prevented this from working before. ๐Ÿ’€

๐ŸŒ Language fixes

  • The Norwegian translation was broken due to a typo in the language module. ๐Ÿ™ˆ
  • Included complete documentation for each language. ๐Ÿ“š
  • Fixed a couple problems with Danish. Nicholas Oxhaj ๐Ÿ‡ฉ๐Ÿ‡ฐ
  • Added Finnish (from a VERY old mail that I overlooked somehow). Iikka Virkkunen ๐Ÿ‡ซ๐Ÿ‡ฎ
  • Cleaned up the values used by printf directives to give the expected result. โœจ

๐Ÿ“ Documentation fixes

  • Fixed a typo. Nicholas Bamber ๐Ÿ’–

๐ŸŒŸ VERSION 6.30 (2012-01-11) ๐ŸŒŸ

  • (*) (!) Reworked deltas โ€” much of the delta code was reworked. ๐Ÿ˜ค
    • The constraint that a day is treated as 24 hours was removed (by adding the concept of semi-exact deltas) to better handle daylight saving time calculations. ๐ŸŒž
    • Made cosmetic changes to which signs will be included in a delta to make the deltas more readable. Signs which are the same as the next higher field will be omitted, even if they cross set boundaries. ๐Ÿ’…
    • Added support for non-normalized deltas. See the $no_normalize option for the parse and set methods. ๐Ÿ”ฅ
    • Removed limitations on subtract=2 not working with business calculations. ๐Ÿ’ผ
    • Thanks to discussion on perlmonks, and RT 65774 that prompted me to do this. I'd been wanting to do it for some time, but the discussion on perlmonks made me realize that this needed to be much higher priority. ๐Ÿ™
  • (!) Modified Delta_Format โ€” in conjunction with the above work, added the 'semi' mode to Delta_Format. ๐ŸŽ€
  • (!) Removed some deprecated config variables โ€” the following config variables have been removed. ๐Ÿ—‘๏ธ
    • GlobalCnf
    • IgnoreGlobalCnf
    • PersonalCnf
    • PersonalCnfPath
    • PathSep
    • Internal
    • DeltaSigns
    • UpdateCurrTZ
    • ConvTZ
    • OldConfigFiles
    • ResetWorkDay

๐ŸŒ Time zone fixes

  • Newest zoneinfo data (tzdata 2011n). RT 71595 ๐Ÿ“…
  • Corrects a bug where +0000 and -0000 offsets were not parsed correctly. Aaron Hall ๐Ÿฆ‹
  • The zoneinfo data includes rules more than 20 years in the future, so we now store 30 years of future dates instead of 20 to catch these rules. โณ
  • When parsing the timezone portion of the date, timezone abbreviations now take higher precedence than zone names (since that is how timezone information is typically specified). That only impacts dates where the a timezone name is the same as an abbreviation, such as 'CET'. ๐ŸŒ
  • Previously, a date with CET in it was interpreted as in the CET timezone. Now it is interpreted as in a timezone with the CET abbreviation. ๐Ÿ”„

๐Ÿ› ๏ธ Better handling of undef in DM6

  • The date/delta parsing routines in DM6 will now handle an undef argument without issuing a warning. Earl C. Ruby III ๐Ÿ™Œ

๐Ÿž Bug fixes

  • Fixed a bug with the parse_format %f and %i formats. Tommi Rintala ๐Ÿ’–
  • Fixed a bug where the Date::Manip::Delta::set function didn't work to set the month value. ๐Ÿ˜ค
  • Fixed a bug where parsing some dates near during a DST change failed. โฐ
  • Minor bug fix when using Delta_Format. Prompted while investigating RT 41095. ๐Ÿ”

๐ŸŒธ VERSION 6.25 (2011-08-31) ๐ŸŒธ

  • Relaxed one constraint in ISO 8601 dates โ€” a time separated by whitespace from the date can use a single digit hour. Yuming Philip Xiang ๐Ÿ•
  • (*) Set official removal dates for old config variables โ€” config variables will be removed 2 years after they are deprecated (except for the TZ variable which, due to it's wide use, will be kept for 4 years). โณ

๐ŸŒ Time zone fixes

  • Newest zoneinfo data (tzdata 2011i). ๐ŸŒ

๐Ÿฆ‹ VERSION 6.24 (2011-06-13) ๐Ÿฆ‹

โœจ New features

  • Spaces are ignored in the SetDate/ForceDate config values. Zsban Ambrus โœจ

๐Ÿž Bug fixes

  • Fixed a bug where 'in one week' wasn't correctly parsed. E. M. Shtern ๐Ÿ“†
  • Fixed a bug where options passed in to the 'new' as a listref weren't handled properly. Zsban Ambrus ๐Ÿ’…

๐ŸŒ Time zone fixes

  • Newest zoneinfo data (tzdata 2011g). ๐ŸŒ

๐Ÿ’œ VERSION 6.23 (2011-04-15) ๐Ÿ’œ

  • (!) Renamed one Date::Manip::Recur method โ€” the Date::Manip::Recur::base method has been renamed to basedate. The Date::Manip::Recur::base method should return the Date::Manip::Base object like all the other Date::Manip modules. ๐Ÿ”„
  • (*) Reworked holidays defined as recurrences โ€” improved dealing with the bootstrap problem of defining holidays, especially those that contain business day flags. Mike Tonks ๐ŸŽ‰

โœจ New features

  • The printf function will now take multiple format strings and return a list of values. Zsban Ambrus ๐Ÿ“

๐Ÿž Bug fixes

  • Fixed a bug where GlobalCnf wasn't working. Peter Edwards ๐Ÿ›
  • Improved error messages in a few cases. ๐Ÿ’ฌ
  • Fixed a bug where one invalid date/timezone check was ignored. Morten Bjornsvik ๐Ÿšซ
  • Fixed a bug where '$base2 = new Date::Manip::Base $base1' wasn't working. RT 67143 ๐Ÿ”ง
  • Fixed a bug where passing dates in to the Recur->dates method failed. RT 67144 ๐Ÿ“…
  • Fixed a bug where the mode wasn't being preserved correctly for a delta. RT 67150 ๐Ÿ”„
  • Fixed a bug in recurrences where a base date outside of a date range with a very uncommon recurrence format would not work correctly. ๐Ÿ—“๏ธ
  • Fixed a problem where the '%s' printf option didn't work in GMT. Jean-Michel Hiver ๐ŸŒ

๐ŸŒ Time zone fixes

  • Newest zoneinfo data (tzdata 2011f). ๐ŸŒ

๐Ÿ“ Documentation fixes

  • Fixed two bad recurrence examples in the documentation. Peter Edwards and Mike Tonks. ๐Ÿ“š

๐ŸŽ€ VERSION 6.22 (2011-03-07) ๐ŸŽ€

๐ŸŒ Time zone fixes

  • Newest zoneinfo data (tzdata 2011b). ๐ŸŒ
  • Fixed a bug where the gmtoff method of getting the local timezone was broken. Martin Zinser. โฐ
  • Fixed the 'env' method of determining the local time zone to allow the value to be an offset of seconds since UTC. This allows the VMS SYS$TIMEZONE_DIFFERENTIAL variable to work correctly. Martin Zinser. ๐Ÿ–ฅ๏ธ
  • Removed the SYS$TIMEZONE_RULE method from VMS since the value stored there is not the name of a timezone (it's a rule in a non-standard format). Based on discussion with Martin Zinser. ๐Ÿ—‘๏ธ
  • Improved the order in which aliases, abbreviations, etc., are tested to test current usage before non-current usage (there were a few cases where old usages were getting tested before current usage. ๐Ÿ”„

๐ŸŒ Language fixes

  • The module will now die if a language module cannot be loaded (most likely due to a YAML::Syck issue). Based on discussion with Martin Zinser. ๐Ÿ’€

๐Ÿ“ Documentation fixes

  • Added a sample config file document. Based on discussion with Rich Duzenbury. ๐Ÿ“„

๐Ÿ“ VERSION 6.21 (2011-01-10) ๐Ÿ“

โœจ New features

  • Deltas may now contain spelled out numbers, so 'in 2 weeks' and 'in two weeks' will both work. Daniel Shahaf โœŒ๏ธ

๐Ÿž Bug fixes

  • Fixed a bug where week_of_year didn't work in some cases. Chris Eveland. ๐Ÿ“…
  • Fixed a minor potential bug. Geraint Edwards. ๐Ÿ›

๐ŸŒ Time zone fixes

  • Updated windows time zone aliases. Daniel Harding ๐ŸชŸ

๐ŸŒ Language fixes

  • Added Norwegian. Glenn Sogn ๐Ÿ‡ณ๐Ÿ‡ด

๐Ÿ‘‘ VERSION 6.20 (2010-12-01) ๐Ÿ‘‘

  • (*) (!) Reworked recurrences โ€” recurrences were reworked in a (slightly) backward incompatible way to improve their usefulness (and to make them conform to the expected results). Most recurrences will work the same as previously, but a few will differ. Most of this was suggested by Jay Jacobs. ๐Ÿ”„
    • A recurring event is now calculated relative to the base date, NOT relative to a previous event. For example, if a recurrence occurs every month, and the base date was Jan 31, then previously, recurring events would have been (in a non-leap year):
D(0)                   = Jan 31
D(1)  = D(0) + 1 month = Feb 28
D(2)  = D(1) + 1 month = Mar 28
...

The new behavior is:

D(0)                       = Jan 31
D(1)  = D(0) + 1*(1 month) = Feb 28
D(2)  = D(0) + 2*(1 month) = Mar 31
...
  • Previously, if a base date were not specified, it was not determined from the date range. Now, the start date of the date range acts as the base date. ๐Ÿ“…
  • The meaning of the base date has changed slightly. It is much more meaningful and useful now. ๐Ÿ’ก
  • Added iterator functions. Daniel LaLiberte ๐Ÿ”
  • The RecurNumFudgeDays variable is no longer used and is deprecated. ๐Ÿšซ

๐ŸŒ Time zone fixes

  • Newest zoneinfo data (tzdata 2010o). ๐ŸŒ

๐Ÿ’– VERSION 6.14 (2010-10-20) ๐Ÿ’–

  • (*) Date::Manip 5.xx fully integrated with 6.xx โ€” Date::Manip 5.xx and 6.xx are both installed automatically, and the correct one will be chosen. ๐Ÿค

๐Ÿž Bug fixes

  • Fixed a bug where recurrence handling was broken. RT 62128 ๐Ÿ›

๐Ÿ“ Documentation fixes

  • A lot of documentation was cleaned up to be easier to read, and better organized. ๐Ÿ“š

โœจ VERSION 6.13 (2010-10-13) โœจ

๐ŸŒธ New features ๐ŸŒธ

  • Added the input methods to Date::Manip::Date and Date::Manip::Delta. Ed Avis.
  • The date +%z command will also be used to determine the timezone. Oliver Schulze

๐Ÿ’€ Bug fixes ๐Ÿ’€

  • Several changes to try to get rid of a memory leaks reported in RT 54937. Huge thanks to BrowserUK on perlmonks for help. Unfortunately, it ended up being a bug in perl, and will only be resolved when that bug is fixed. See the Date::Manip::Problems document for more information.
    • Reorganized Base/TZ to get rid of circular references.
    • Added end blocks to clean some global variables.
    • Got rid of switch/given structures.
  • Fixed a bug where an incomplete date with 'last' in it was causing an error. RT 60138
  • Fixed a bug where 'Sunday, 9th Jan 1972' wasn't parsed correctly. RT 57832

๐Ÿฆ‹ Time zone fixes ๐Ÿฆ‹

  • Fixed a bug where Zones.pm was generated with the abbreviations in the wrong order. Amish Chana.

๐ŸŒˆ Language fixes ๐ŸŒˆ

  • French month abbreviations now support periods. Bernard Haerri

โญ Test fixes โญ

  • Added tests from RT 29655 to make sure that the problem never recurs.

๐ŸŽ€ Documentation fixes ๐ŸŽ€

  • Fixed documentation problem with the new_* methods in Date::Manip::Obj. Options must be passed in as \@opts rather than @opts.
  • Cleaned up some of the documentation.

โœจ VERSION 6.12 (2010-09-27) โœจ

๐Ÿ˜ญ (!) IntCharSet config variable deprecated ๐Ÿ˜ญ

With better support for international character sets, the old IntCharSet config variable (which was a bandaid at best) is deprecated. Currently, the functionality still exists, but it will be removed at some point.

bestie this one is on the way OUT ๐Ÿ’… it still works for now but don't get attached, okay?

๐ŸŒธ New features ๐ŸŒธ

  • Added the Encoding config variable.
  • Now supports parsing the EXIF date format. Rhesa Rozendaal

๐Ÿ’€ Bug fixes ๐Ÿ’€

  • Fixed Build.PL to not require perl 5.010 since the distribution as a whole does not require that (and I want that fact to be in META.yml).
  • Fixed a bug where the Date::Manip::Date::set method was broken when setting individual fields. Helmut A. Bender
  • Fixed a bug where set didn't work in Date::Manip::Delta. Patch provided in RT 59096.

๐Ÿฆ‹ Time zone fixes ๐Ÿฆ‹

  • Newest zoneinfo data (tzdata 2010m)

๐ŸŒˆ Language fixes ๐ŸŒˆ

  • (*) Converted all language files to UTF-8 and added rudimentary support for character encodings. Some assistance by Stephen Ostermiller.
  • Fixed problem in Polish, Dutch. Stephen Ostermiller
  • Extended support for 'nth' up to 53rd. Paco Regodon
  • Added some corrections to German. Dieter Lange

๐ŸŽ€ Documentation fixes ๐ŸŽ€

  • Clarified Date::Manip::Recur documentation based on RT 59132.

โœจ VERSION 6.11 (2010-04-30) โœจ

๐Ÿ’€ Bug fixes ๐Ÿ’€

  • Fixed a problem in Build.PL that had an incorrect module requirement.

โœจ VERSION 6.10 (2010-04-29) โœจ

๐Ÿ‘‘ (*) Combined 5.xx and 6.xx releases into one distribution ๐Ÿ‘‘

Because the automatic module management tools cpan/cpanp would try to upgrade Date::Manip to the most recent version, and the most recent version will only work if perl 5.10.0 or higher is installed, both the 5.xx and 6.xx releases are now combined into a single distribution.

This is described more fully in the Date::Manip::Problems document.

๐Ÿ”ฅ (!) Zones specified by offset ๐Ÿ”ฅ

In all operations involving time zones, the time zone must be determined. By default, it would take all of the information available (date, ISDST, etc.) and determine the most likely time zone. It would take every time zone that matched each piece of information, starting with those that matched in a standard time followed by those that matched in a daylight saving time.

When zones are specified by an offset, a standard time would always match since there are standard time zones that match all year long (the military time zones A-Z and the standard time zones of the form Etc/GMT+01). As a result, a daylight saving time match would never occur.

Since (if the date falls during a daylight saving time period) you usually want to use a time zone that has that offset in daylight saving time, the default is now to check daylight saving time zones first, followed by standard times.

See the Date::Manip::TZ manual (under the zone method) for more information.

๐Ÿ’€ Bug fixes ๐Ÿ’€

  • Fixed a bug where Date_ConvTZ not working correctly with time zones specified by offset. Chris Butler
  • Fixed a bug where business mode calculations involving minutes was not handled correctly. Damien Moore
  • Fixed a bug where business mode calculations failed in some cases. RT 56638

๐Ÿฆ‹ Time zone fixes ๐Ÿฆ‹

  • Newest zoneinfo data (tzdata 2010i)
  • Changed Date::Manip::TZ::zone so "dst" is sometimes the default $dstflag. Based on the bug report by Chris Butler.
  • OpenUNIX puts a colon at the start of some time zones. It's removed. Jean Hassler

โญ Test fixes โญ

  • Converted tests to Test::Inter

๐ŸŽ€ Documentation fixes ๐ŸŽ€

  • Fixed a documentation bug in Date::Manip::TZ where "stdonly" was listed as the default value for $dstflag, but in actuality, "std" is the default.

โœจ VERSION 6.07 (2010-02-05) โœจ

๐Ÿ’€ Bug fixes ๐Ÿ’€

  • Fixed bug in Date_TimeZone where it wasn't returning the time zone. Robert Eden

โœจ VERSION 6.06 (2010-02-05) โœจ

๐Ÿ’€ Bug fixes ๐Ÿ’€

  • Minor bug where %Z printf format didn't always work.
  • Added support for 5pm back in (it was omitted accidentally). Mark Kennedy
  • Fixed a minor warning. Morten Bjoernsvik
  • Some additional speedups.

๐Ÿฆ‹ Time zone fixes ๐Ÿฆ‹

  • Newest zoneinfo data (tzdata 2010b)
  • Added dm_zdump example script.
  • Improved TZ::periods functionality
  • Fixed bug in Date_ConvTZ where empty values weren't defaulting to local time zone. Robert Eden
  • Fixed a couple of problems in the generated time zones for some odd cases (America/Resolute and Asia/Tehran).

โœจ VERSION 6.05 (2009-12-09) โœจ

๐Ÿ’… (!) %z format ๐Ÿ’…

In Date::Manip 5.xx, the %z format in UnixDate printed the offset in the form -0500. In 6.00, I changed that to -05:00:00, but this broke RFC 822 compliance.

I've changed %z back to -0500, and introduced a new format (%N) which returns -05:00:00.

Incidentally, this is the LAST unused letter, so I am now going to have to either stop adding formats, or add some extended format syntax. Not sure yet which, but this may involve a backwards incompatible change in the future.

the alphabet said "no more room bestie" ๐Ÿ˜ญ so format syntax might get a glow-up later, no promises

๐Ÿ”ฅ (*) Significant speedups. ๐Ÿ”ฅ

Thanks to Moritz Lenz and BrowserUK on perlmonks for suggestions (and a number of other people on perlmonks for suggestions that I did not end up using, but which provided a great discussion).

๐Ÿ’€ Bug fixes ๐Ÿ’€

  • Fixed a bug in parse_date where the current time was getting used instead of the documented 00:00:00
  • Bug fix where DateCalc didn't work with $mode in some cases.
  • Fixed Makefile.PL/Build.PL to handle Win32::TieRegistry requirement.
  • Changed %z printf behavior back to 5.xx and added %N format. Gilles Lamiral
  • Added dm_date example script.

๐Ÿฆ‹ Time zone fixes ๐Ÿฆ‹

  • Fixed bug where non-English Windows versions didn't get the time zone. Thanks to Rene Schickbauer for testing.

โญ Test fixes โญ

  • Reduced the precision of 1 test to avoid a rounding difference when using a perl compiled with uselongdouble. Andreas Koenig

โœจ VERSION 6.04 (2009-11-25) โœจ

๐Ÿ’€ Bug fixes ๐Ÿ’€

  • Fixed a bug where events were not interpreted in the correct time zone if SetDate/ForceDate used.

โœจ VERSION 6.03 (2009-11-24) โœจ

๐Ÿ’€ Bug fixes ๐Ÿ’€

  • Corrects a backward incompatibility with UnixDate. Rene Schickbauer

โญ Test fixes โญ

  • A couple more corrections to the tests.

โœจ VERSION 6.02 (2009-11-24) โœจ

๐Ÿ’€ Bug fixes ๐Ÿ’€

  • Disabled curr_zone_methods when taint checking on. I believe that Date::Manip is completely taint friendly at this point.

โญ Test fixes โญ

  • A quick fix to make sure that the tests run correctly in other time zones.

โœจ VERSION 6.01 (2009-11-23) โœจ

๐Ÿ’€ Bug fixes ๐Ÿ’€

  • (*) Fixed a bug where dates were sometimes getting the wrong time zone when SetDate/ForceDate in effect.

๐Ÿ’– VERSION 6.00 (2009-11-23) ๐Ÿ’–

๐ŸŽ€ First release of the 6.xx series ๐ŸŽ€

okay bestie, gather round, this is the origin story ๐ŸŒˆ Date::Manip 6.00 is a total rethink of the module, and a nearly complete rewrite. and fr fr, pls go read the Date::Manip::Changes5to6 document for a list of incompatible changes โ€” that's where all the "wait, it does WHAT now" receipts live ๐Ÿ‘‘


๐Ÿงš Reorganization

  • (*) Massive reorganization and near total rewrite. like, everything got moved, it's giving full closet clean-out ๐Ÿ’…
  • (*) Broke into several smaller modules โ€” main character energy but make it an ensemble cast โœจ

๐ŸŒŸ New Features

  • () Full time zone support (using tzdata 2009s) โ€” she finally knows what time it is *everywhere ๐Ÿ•ฐ๏ธ
  • Added some functionality (suggested by James Elson to improve setting the "current time". Done with the ForceDate config variable.
  • (*) Converted languages to YAML for much easier maintenance. Patch and suggestion provided by Evan Carroll
  • Added much better formats for deltas. Suggested by Jim Hranicky.
  • Borrowed the _FindWindowsTZName function from the DateTime-TimeZone module.
  • Added SetDate config variable (based on a suggestion by Christian Campbell).
  • Added parse_format which was first suggested by Kim Ryan.

๐Ÿ’œ Other changes

  • Several config variables deprecated โ€” rip to those, they had a good run ๐Ÿ˜ญ
  • Thanks to Jonathan Hogue for helping test Windows additions.

๐Ÿ› Bug fixes (correcting problems in the 5.xx releases)

  • Fixed a bug where "YYtoYYYY=c" wouldn't work.
  • VMS bugfix to not call date command. Lane
  • New Year's Day defined using a recurrence which might push the observed day to the previous year was broken. Reported by Jerry Wilcox.

๐ŸŒธ Language fixes

  • Fixed typo in Turkish translation.
  • Spelling fix in Dutch. Bart Van Loon

๐Ÿซถ Additional credits

ngl, this part is so wholesome. I have received many suggestions over time which were automatically handled during the 6.00 rewrite. Although the changes weren't made because of the suggestions specifically, I wanted to acknowledge them since I appreciate the suggestions. ๐Ÿฅน

  • I believe the first person to suggest writing Date::Manip as an OO module was Eduard Derksen.
  • Delta_Format initialization done outside of the function. Eric Boehm
  • Added $subtract to calculation routines. First suggested by Steve Berlage.
  • Added ability to set individual parts of the date (Date::Manip::Date::set). First suggested by Martin Thurn.
  • UnixDate (i.e. Date::Manip::Date::printf) only calculates formats when they are needed. Eduard Derksen
  • Parsing will skip some date/time formats if requested. This was first suggested by Eduard Derksen.
  • It has been suggested several times to support multiple languages, multiple config files, or multiple sets of Date_Init options. These suggestions (by Meng Fang, Ed Avis, Christian Campbell, and perhaps others) were at the back of my mind as I developed the Date::Manip::Base class.
  • The regular expressions are all i18n friendly in anticipation of much better support for localization. First suggested by Alex Kapranoff.
  • Parsing a date ('today', 'Monday') gives a time of '00:00:00'. Suggested by Mark Aitchison.
  • Working with fractional days was suggested by Peter van Hardenberg. This is implemented in Date::Manip::Base::day_of_year method.

๐Ÿฆ‹ BUGS AND QUESTIONS ๐Ÿฆ‹

Please refer to the Date::Manip::Problems documentation for information on submitting bug reports or questions to the author. (yes bestie, there's a whole doc for that, we love a paper trail ๐Ÿ’Œ)

๐ŸŒˆ SEE ALSO ๐ŸŒˆ

  • Date::Manip โ€” main module documentation

โญ LICENSE โญ

This script is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

๐Ÿ‘‘ AUTHOR ๐Ÿ‘‘

Sullivan Beck (https://github.com/SBECK-github/)


and that's a wrap on the whole changelog, bestie ๐ŸŽ‰ you made it to the end of all six parts, which is genuinely iconic of you. this page comes from the perl v5.42.3 toolchain, dated 2026-09-01, filed under Date::M...Changes6(3) in the User Contributed Perl Documentation โ€” mwah, go forth and manipulate some dates ๐Ÿ’…๐Ÿ’–

๐Ÿ“ฆ where this page comes from