Re: Did April go missing in Asia/Amman?

2016-04-23 Thread Zefram
Bill Moseley wrote:
>The code Eric pointed me to sets the hour to 12 on a floating $dt and then
>sets the timezone.  Sounds like there's cases where that could still fail.

Right, that's broken.  That's not the algorithm I was proposing.
You should search among *UT* times, and the only kind of conversion
you need is to represent a given UT time in zone terms, which doesn't
run into this problem.  There is no need to specify a local time and
convert it to UT or otherwise process it.  Your initial search range is
centred around the UT start of the specified day, with a radius around
that centre point of 1440 minutes or so.

>This is for a form where a user can enter a start and end date (not a time)
>and expect to see all events during those days.  i.e.   From 2016-04-01 to
>2016-04-30.

To handle the inclusive upper day boundary, increment the supplied date
(calendar arithmetic only, ignore zone behaviour) to get an exclusive
upper day boundary.  Find the beginning of that day in zone time to get
an exclusive upper UT time boundary.

>The form's defaults are suppose to be the dates for the *current* start and
>end of the month *in the user's time zone*.

For this part, you just take the current UT time and represent it in
zone terms.  That tells you what month to default to.

-zefram


Re: Did April go missing in Asia/Amman?

2016-04-23 Thread Zefram
Eric Brine wrote:
>I can't figure out how to search only down to the minute without causing it
>to find the wrong answer on days with two midnights.

In those fairly common cases, where DST ending causes time to jump back
from 01:00 to 00:00, you want to consistently get the earlier midnight.
This doesn't pose any real difficulty.  Finding a UT time that corresponds
to local time 00:00 doesn't tell you that you've found the real boundary:
it only tells you that the real boundary is no later than this time.
You continue the binary search.  The criterion you use, to decide which
range endpoint to replace with the bisected timestamp, is whether the
local time to which it corresponds is greater than or equal to 00:00
on the target day.  You should end up with two consecutive UT minutes,
the earlier of which precedes the target day in zone time, and the later
of which falls on or follows the target day in zone time.

The only situation that would really screw up this search is if time
jumped back from, say, 00:30 to 23:30, making the span of a calendar date
discontinuous in zone time.  (Is this what you meant by "two midnights"?)
No zone actually does this.  While changing the effective length of a
local day is quite palatable, making a day discontinuous is too big an
inconvenience.  Note that this is inconvenient *for people in the zone*,
unlike things like there being no local 12:00, which is inconvenient
*for programmers* and happens all the time.

-zefram


Re: Did April go missing in Asia/Amman?

2016-04-23 Thread Zefram
Eric Brine wrote:
>The binary search found:
...
>2013-11-03T03:45:00 UTC
>2013-11-03T04:07:30 UTC

You should only examine integral minutes.  Truncate to the minute
when bisecting, before you pass your bisected time to DateTime.  Or,
to avoid fractions entirely, extend the search radius to 2048 minutes.
Either way, do not burden DateTime with any arithmetical job.

Here's an implementation of what I mean:

sub start_of_day {
my($tgt_date_str, $zone) = @_;
$tgt_date_str =~ /\A([0-9]{4})-([0-9]{2})-([0-9]{2})\z/ or die;
my $tgt_date_ut = DateTime->new(year => "$1", month => "$2",
day => "$3", time_zone => "UTC");
my($tgt_date_epoch_min) = $tgt_date_ut->epoch / 60;
my($tgt_date_rd) = $tgt_date_ut->utc_rd_values;
my $left_epoch_min = $tgt_date_epoch_min - 1440;
my $right_epoch_min = $tgt_date_epoch_min + 1440;
while(($right_epoch_min - $left_epoch_min) > 1) {
my $try_epoch_min = ($left_epoch_min + $right_epoch_min) >> 1;
my $try_dt = DateTime->from_epoch(epoch => $try_epoch_min*60,
time_zone => $zone);
(($try_dt->local_rd_values)[0] >= $tgt_date_rd ?
$right_epoch_min : $left_epoch_min) = $try_epoch_min;
}
return DateTime->from_epoch(epoch => $right_epoch_min*60);
}

Use as in:

@ARGV == 2 or die;
my($tgt_date_str, $zone_name) = @ARGV;
my $zone = DateTime::TimeZone->new(name => $zone_name);
print start_of_day($tgt_date_str, $zone), "Z\n";

-zefram


Re: Did April go missing in Asia/Amman?

2016-04-23 Thread Zefram
Eric Brine wrote:
>Thanks. I'll study this. I didn't think dividing by 60, adding 60 and
>subtracting 60 was safe before of leap seconds.

POSIX time, what DateTime calls "epoch" time, doesn't count leap seconds.
Each multiple of 60 corresponds to the top of a UTC minute.

-zefram


Re: Did April go missing in Asia/Amman?

2016-04-23 Thread Zefram
Eric Brine wrote:
>00:00:04   <--- Starting from this

You shouldn't be getting such a time at any point in the algorithm I
was proposing.

-zefram


Re: How to tell (in advance) if a date-time is ambiguous?

2017-07-12 Thread Zefram
Binarus wrote:
>So is there any change to add an according API function to DT:TZ?

Yes, but we wouldn't want to rush it.  There's more than one
implementation of the API, and we want to be sure to design it correctly
the first time.

Perhaps it could be a ->offsets_for_local_datetime method (note
plural in the name), which returns a sorted list of all the timezone
offsets that are applicable to a specified local time.  Normally the
list would have length 1, the element being the same value returned by
->offset_for_local_datetime.  Ambiguous local times (regardless of the
source of ambiguity) yield more than one offset.  Non-existent local times
(skipped due to clocks going forward) yield an empty list without error.

-zefram


Re: How to tell (in advance) if a date-time is ambiguous?

2017-07-11 Thread Zefram
Dave Rolsky wrote:
>If you're trying to avoid these, the best advice I could give would be to
>avoid the 12am-4am window, which AFAIK is when most (all?) transitions have
>occurred historically.

Most, but there are both historical and current exceptions.
America/Godthab (west Greenland) changes 22:00->23:00 and 23:00->22:00
(base offset -03:00, with transition at 01:00 UT per EU rules).
America/Santiago (Chile) changes 00:00->23:00.  Pacific/Easter (Easter
Island) changes 22:00->23:00 and 22:00->21:00 (changing at the same
time as Chile, but with base offset 2 hours to the west).  Historically,
Africa/Casablanca (Morocco) changed 12:00->13:00 in a DST change in 1967.
And Pacific/Kwajalein (part of the Marshall Islands) jumped across the
international date line in the unfashionable direction, repeating 23
hours of 1969-09-30.

-zefram


Re: How to tell (in advance) if a date-time is ambiguous?

2017-07-11 Thread Zefram
Binarus wrote:
>As the documentation tells us, DateTime always chooses the later time
>when calculating with ambiguous times,

This logic is actually in DateTime::TimeZone, where DateTime invokes
it via the ->offset_for_local_datetime method.  The internal logic
is able to walk the sequence of observances, and when it finds a
matching observance it looks ahead to the next one to check specially
for ambiguity.  It returns the later span if there's an ambiguity due
specifically to a change from DST to non-DST; it doesn't have guaranteed
behaviour in any other ambiguity scenario.  DT:TZ doesn't document this
feature, and doesn't offer any other form of ambiguity detection in its
API (though of course it would be possible to add some).

>   and if you subtract an hour from
>the later (ambiguous) time, you'll get the same time, but the earlier
>one (provided the clock is turned back by an hour when switching back).

You can't rely on offset changes, even specifically ones for DST, being of
an hour.  Australia/Lord_Howe (Lord Howe Island) does a regular half-hour
DST jump.

-zefram


Re: How to tell (in advance) if a date-time is ambiguous?

2017-07-11 Thread Zefram
Binarus wrote:
>Did you memorize the tzfile of 1969 :-)

I looked through the Olson source files.  I could also have automated
a search through the compiled zone data.

-zefram


Re: TimeZones and politics Re: How to tell (in advance) if a date-time is ambiguous?

2017-07-11 Thread Zefram
Bill Ricker wrote:
>On Tue, Jul 11, 2017 at 4:07 AM, Binarus <li...@binarus.de> wrote:
>>  and the next law could determine the switch to
>> happen at 08:48:27 am, and
>
>It could in theory, but would be beyond atypical.

There have historically been some DST rules calling for changes at
00:01.  For example, America/Moncton (New Brunswick, Canada) changed
00:01->01:01 and 00:01->23:01 from 1993 to 2006.  The 00:01->23:01
change is particularly unusual for turning the date back.  The Olson
database also shows some one-off changes (not DST changes) that were
not minute-aligned in the previously-prevailing local time, but these
are only when changing from local mean time to a UT-based standard time,
at a time that's minute-aligned in the new standard time.

>(The file format and software should handle  08:48,not sure about 08:48:27 ?)

The file format, and all the software I know about, can handle transitions
at any second.

-zefram


Re: How to tell (in advance) if a date-time is ambiguous?

2017-07-10 Thread Zefram
Binarus wrote:
>Using DateTime, is it possible to tell in advance if a certain date-time
>which is given in a certain locale will be ambiguous due to switching
>from DST to standard time?

That is tricky.  I don't think our APIs provide any way to do it.
Thinking about the facilities available a bit lower down, the way I'd
probably approach it is to look at the list of all the offsets ever used
in that timezone (not available through any API, but extractable from
the tzfile).  I'd compute for each the UT time that would be represented
by the specified local time with that offset, and then use the regular
API to convert that UT time to the local time in the specified timezone
(or equivalently just to look up the zone's offset for that UT time).
Look at which local times come out matching the specified local
time (which offsets match the candidate offset that we were trying).
If there's more than one match, that's an ambiguous local time.  If there
are no matches, it's a non-existent local time.

Something close to this can actually be done in the C time API.  You
don't get to ask what all the zone's offsets are, but in the local->UT
conversion you can specify whether DST is in effect.  Giving both states
of that flag gives you two UT times, which you can then convert back
to local to check whether they come out with the same DST flag state.
This will work for regular DST changes, but not for offset changes that
are unrelated to DST.

-zefram


Re: How to check if a DateTime is invalid (again - but this time without using eval)?

2017-07-10 Thread Zefram
Thomas (HFM) Wyant wrote:
>One of the edge cases with eval {} is the possibility that $@ gets
>clobbered before you get your hands on it.

The possibility of it being clobbered by a destructor was fixed in 5.14.
(Destructors that do this are considered buggy, for pre-5.14 perls,
and are individually easy to fix, so the problem is still manageable on
those perl versions.)

-zefram


Time::OlsonTZ::Data 0.201702 announcement

2017-07-16 Thread Zefram
Shortly available from all good CPAN mirrors:

  file: $CPAN/authors/id/Z/ZE/ZEFRAM/Time-OlsonTZ-Data-0.201702.tar.gz
  size: 721268 bytes
   md5: e60e2f96eb2c2d501fb4468e5ec8d379
  sha1: 8cd2303725b607db99487b31cd934122ef10bd93

Changes from the previous release:

  * Olson database version 2017b (code 2017b, data 2017b): 386 canonical
zones, 208 links

  * in prebuild, remove implicit . from @INC, for security

  * in prebuild, work with new PD-with-stated-exceptions notice in the new
LICENSE file, and new form of copyright notices that lack the ASCII
rendition of the copyright symbol, and copy all files from the Olson
distribution that are not listed exceptions or marked as copyrighted

  * no longer include a Makefile.PL in the distribution

  * in prebuild, declare required Perl version

  * correct copyright notice in prebuild

-zefram


Re: Time::OlsonTZ::Data 0.201702 announcement

2017-07-16 Thread Zefram
I wrote:
>Shortly available from all good CPAN mirrors:
>
>  file: $CPAN/authors/id/Z/ZE/ZEFRAM/Time-OlsonTZ-Data-0.201702.tar.gz

I've revived the automatic repackaging which broke back at the 2014h
release, nearly three years ago.  It originally broke then because the
new trend to turn what used to be distinct canonical zones into links
brought the count of canonical zones down enough to trip a sanity
check that I'd put into the automatic process.  I didn't fix it at
the time because I had a poor mental state and, with this module only
in use for experimental purposes, there didn't seem to be the need.
(I would certainly have fixed it promptly if we'd switched DT:TZ over to
use it, as we've previously discussed.)  The automation rotted further,
with changes to the copyright notices, an awkward new make rule, and
UTF-8 in one of the files in the Olson distro.  That's all fixed now,
and I expect to keep the automation up to date from here.

-zefram


Re: How to check if a DateTime is invalid (again - but this time without using eval)?

2017-07-02 Thread Zefram
Binarus wrote:
>- Most people recommend to "catch the error" DateTime throws when
>encountering such date-times, but if I got it right, that always
>involves eval, even when using modules like Try:Tiny and the like, so I
>don't want to do that.

Do this.  eval is the right tool for the job.

-zefram


Re: How to check if a DateTime is invalid (again - but this time without using eval)?

2017-07-03 Thread Zefram
Eric Brine wrote:
>On Mon, Jul 3, 2017 at 11:11 AM, Thomas Klausner <d...@cpan.org> wrote:
>> I personally don't like Try::Tiny, because it changes how 'return' works
>> inside an eval (well, try)
>
>What difference is there?

I think domm is actually thinking of TryCatch there.  Inside an eval,
or Try::Tiny's try, a return expression returns from the eval/try.
Inside TryCatch's try, a return expression ignores the try scope and
returns from whatever it would have returned from without it, usually
from the enclosing subroutine.

$ perl -lwe 'sub z { eval { return 123 }; return 456; } print z()'
456
$ perl -MTry::Tiny -lwe 'sub z { try { return 123; }; return 456; } print z()'
456
$ perl -MTryCatch -lwe 'sub z { try { return 123; } return 456; } print z()'
123

-zefram


Re: Subclassing DateTime?

2017-04-29 Thread Zefram
Thomas (HFM) Wyant wrote:
>It seems to me that in at least some such cases subclassing
>DateTime would be a better alternative.

You've run into the terrible factoring of the DateTime system.  All three
of the modules you named already suffer from it, but subclassing DateTime
would make things worse.  For subclassing to be the right answer,
the objects of your classes would have to be everything that DateTime
objects are, plus something that you're adding.  But one of the things
that DateTime objects are is Gregorian, which your objects are not.

-zefram


Time::OlsonTZ::Data 0.201703 announcement

2017-10-23 Thread Zefram
Shortly available from all good CPAN mirrors:

  file: $CPAN/authors/id/Z/ZE/ZEFRAM/Time-OlsonTZ-Data-0.201703.tar.gz
  size: 737648 bytes
   md5: f9c045c0bbcc24f9e5cb9f164884951b
  sha1: a1897682fbd3f7ec0d4dfd88c670a5d8694e404a

Changes from the previous release:

  * Olson database version 2017c (code 2017c, data 2017c): 387 canonical
zones, 206 links

  * in prebuild, work with new form of PD-with-stated-exceptions notice
in the LICENSE file

  * in documentation, use four-column indentation for all verbatim
material

  * in META.{yml,json}, point to public bug tracker

-zefram


Time::OlsonTZ::Data 0.201805 announcement

2018-05-03 Thread Zefram
Shortly available from all good CPAN mirrors:

  file: $CPAN/authors/id/Z/ZE/ZEFRAM/Time-OlsonTZ-Data-0.201805.tar.gz
  size: 747739 bytes
   md5: 23c77b0e3f74758ad1d29e836b4b1dd3
  sha1: be3f900c2b8beb518a1eaafa2cec5f178aee81e2

Changes from the previous release:

  * Olson database version 2018e: 388 canonical zones, 204 links

-zefram


Time::OlsonTZ::Data 0.201802 announcement

2018-01-18 Thread Zefram
Shortly available from all good CPAN mirrors:

  file: $CPAN/authors/id/Z/ZE/ZEFRAM/Time-OlsonTZ-Data-0.201802.tar.gz
  size: 729629 bytes
   md5: 9599533ff132a3622bc622cbaa7d4d72
  sha1: 12044d4b72a6cff5fe19f5985390141183f08b9f

Changes from the previous release:

  * Olson database version 2018b: 388 canonical zones, 204 links

-zefram


Time::OlsonTZ::Data 0.201801 announcement

2018-01-16 Thread Zefram
Shortly available from all good CPAN mirrors:

  file: $CPAN/authors/id/Z/ZE/ZEFRAM/Time-OlsonTZ-Data-0.201801.tar.gz
  size: 728913 bytes
   md5: d37ff1a893c521afba3d2ef7494af45d
  sha1: f07f4f450b22c59f7740e70146b9458ef3c343ba

Changes from the previous release:

  * Olson database version 2018a: 388 canonical zones, 204 links

  * do not bundle non-source files that are included in the Olson
database distribution

  * no longer treat olson_code_version and olson_data_version as distinct
values, now that both halves are released in lockstep upstream

  * in prebuild, handle new kinds of download files

-zefram


Time::OlsonTZ::Data 0.201803 announcement

2018-01-23 Thread Zefram
Shortly available from all good CPAN mirrors:

  file: $CPAN/authors/id/Z/ZE/ZEFRAM/Time-OlsonTZ-Data-0.201803.tar.gz
  size: 730796 bytes
   md5: 3b8ab43a8f588a532faf40986f825121
  sha1: 45a18a0e4747be1396445e01e13d31bf46df25f5

Changes from the previous release:

  * Olson database version 2018c: 388 canonical zones, 204 links

-zefram


Time::OlsonTZ::Data 0.201806 announcement

2018-10-18 Thread Zefram via datetime
Shortly available from all good CPAN mirrors:

  file: $CPAN/authors/id/Z/ZE/ZEFRAM/Time-OlsonTZ-Data-0.201806.tar.gz
  size: 761285 bytes
   md5: 02ad00dbeb0cd3e8175d7678f062289c
  sha1: ae3f9ffb9e1b3f2d282bd8b1cd75be9f2ed3ad0a

Changes from the previous release:

  * Olson database version 2018f: 388 canonical zones, 204 links

-zefram


Time::OlsonTZ::Data 0.201807 announcement

2018-10-27 Thread Zefram via datetime
Shortly available from all good CPAN mirrors:

  file: $CPAN/authors/id/Z/ZE/ZEFRAM/Time-OlsonTZ-Data-0.201807.tar.gz
  size: 764928 bytes
   md5: 616ac029cbf91238b8279c15927ef10c
  sha1: af5f4098a1c4c2e5cd515fa6717fbba1722ba6f5

Changes from the previous release:

  * Olson database version 2018g: 388 canonical zones, 204 links

-zefram


Time::OlsonTZ::Data 0.201808 announcement

2018-12-29 Thread Zefram via datetime
Shortly available from all good CPAN mirrors:

  file: $CPAN/authors/id/Z/ZE/ZEFRAM/Time-OlsonTZ-Data-0.201808.tar.gz
  size: 778286 bytes
   md5: 6d160f33659c27e788fea6c99821c046
  sha1: cc1a48e43bd43ce217a8d4887b422252156db27c

Changes from the previous release:

  * Olson database version 2018h: 389 canonical zones, 204 links

-zefram


Time::OlsonTZ::Data 0.201809 announcement

2018-12-30 Thread Zefram via datetime
Shortly available from all good CPAN mirrors:

  file: $CPAN/authors/id/Z/ZE/ZEFRAM/Time-OlsonTZ-Data-0.201809.tar.gz
  size: 778806 bytes
   md5: 0be3d73258dcc6ce3e695f06fbd7d5c3
  sha1: d85dbedca1f4c1a53faccc6c8e3f8a685e3717ef

Changes from the previous release:

  * Olson database version 2018i: 389 canonical zones, 204 links

-zefram


Time::OlsonTZ::Data 0.201901 announcement

2019-03-26 Thread Zefram via datetime
Shortly available from all good CPAN mirrors:

  file: $CPAN/authors/id/Z/ZE/ZEFRAM/Time-OlsonTZ-Data-0.201901.tar.gz
  size: 783469 bytes
   md5: 409c69258d5ed63f134d0f80454baf57
  sha1: 2d045e8a27c6444d5b96bc32b59f46da70729566

Changes from the previous release:

  * Olson database version 2019a: 388 canonical zones, 205 links

-zefram


Time::OlsonTZ::Data 0.201902 announcement

2019-07-01 Thread Zefram via datetime
Shortly available from all good CPAN mirrors:

  file: $CPAN/authors/id/Z/ZE/ZEFRAM/Time-OlsonTZ-Data-0.201902.tar.gz
  size: 790741 bytes
   md5: 13ba3af683256e78610d7198d2a6b097
  sha1: 460a25632b34ad6d074b1abbc3537abf2710ec48

Changes from the previous release:

  * Olson database version 2019b: 388 canonical zones, 205 links

-zefram


Time::OlsonTZ::Data 0.201903 announcement

2019-09-11 Thread Zefram via datetime
Shortly available from all good CPAN mirrors:

  file: $CPAN/authors/id/Z/ZE/ZEFRAM/Time-OlsonTZ-Data-0.201903.tar.gz
  size: 799872 bytes
   md5: 539cef4a4cbba7800a40dd69b5f3b8ea
  sha1: 0a740049a23a1ffa82161649b63ca645e0a4c540

Changes from the previous release:

  * Olson database version 2019c: 388 canonical zones, 205 links

-zefram


Time::OlsonTZ::Data 0.202001 announcement

2020-04-23 Thread Zefram via datetime
Shortly available from all good CPAN mirrors:

  file: $CPAN/authors/id/Z/ZE/ZEFRAM/Time-OlsonTZ-Data-0.202001.tar.gz
  size: 806724 bytes
   md5: 076b0e74277f3c40f139fd29b24bbca4
  sha1: 07fb6502cf01b0e6f76f2a0d14f36b31f356631d

Changes from the previous release:

  * Olson database version 2020a: 388 canonical zones, 206 links

-zefram


Time::OlsonTZ::Data 0.202002 announcement

2020-10-07 Thread Zefram via datetime
Shortly available from all good CPAN mirrors:

  file: $CPAN/authors/id/Z/ZE/ZEFRAM/Time-OlsonTZ-Data-0.202002.tar.gz
  size: 750088 bytes
   md5: e3c552ce6eaa65d83bd9bc778d93d56c
  sha1: 2e520e2000c20e9478becfdad496e9751268f065

Changes from the previous release:

  * Olson database version 2020b: 388 canonical zones, 206 links

-zefram


Time::OlsonTZ::Data 0.202003 announcement

2020-10-16 Thread Zefram via datetime
Shortly available from all good CPAN mirrors:

  file: $CPAN/authors/id/Z/ZE/ZEFRAM/Time-OlsonTZ-Data-0.202003.tar.gz
  size: 751008 bytes
   md5: 9337589dd5ca3482eec4e84e6bdb31d6
  sha1: 2c023ee079e93c68ea833b502654eac8ea6f6ea3

Changes from the previous release:

  * Olson database version 2020c: 388 canonical zones, 206 links

-zefram


Time::OlsonTZ::Data 0.202004 announcement

2020-10-21 Thread Zefram via datetime
Shortly available from all good CPAN mirrors:

  file: $CPAN/authors/id/Z/ZE/ZEFRAM/Time-OlsonTZ-Data-0.202004.tar.gz
  size: 752210 bytes
   md5: 89639f92b77676aa60c46d87ee0462ab
  sha1: b362be449e0d10d4141fb9553c59da89109f584e

Changes from the previous release:

  * Olson database version 2020d: 388 canonical zones, 206 links

-zefram


Time::OlsonTZ::Data 0.202006 announcement

2020-12-29 Thread Zefram via datetime
Shortly available from all good CPAN mirrors:

  file: $CPAN/authors/id/Z/ZE/ZEFRAM/Time-OlsonTZ-Data-0.202006.tar.gz
  size: 765335 bytes
   md5: a0e9272e175772ac571b9e4c0494dff6
  sha1: d4ae70d560979545071e6ac7dff24a0afe90816e

Changes from the previous release:

  * Olson database version 2020f: 387 canonical zones, 207 links

-zefram


Time::OlsonTZ::Data 0.202005 announcement

2020-12-22 Thread Zefram via datetime
Shortly available from all good CPAN mirrors:

  file: $CPAN/authors/id/Z/ZE/ZEFRAM/Time-OlsonTZ-Data-0.202005.tar.gz
  size: 765139 bytes
   md5: 04a8778d23734a86fea8966bab865e72
  sha1: c635bb24b2b515268d3a93aad850e94eda20746b

Changes from the previous release:

  * Olson database version 2020e: 387 canonical zones, 207 links

-zefram


Time::OlsonTZ::Data 0.202101 announcement

2021-01-24 Thread Zefram via datetime
Shortly available from all good CPAN mirrors:

  file: $CPAN/authors/id/Z/ZE/ZEFRAM/Time-OlsonTZ-Data-0.202101.tar.gz
  size: 765257 bytes
   md5: 87d3365828cc874464e4da79dee03f4d
  sha1: ba94229fb25886df0025540c4ae8b61a3853e8e0

Changes from the previous release:

  * Olson database version 2021a: 387 canonical zones, 207 links

-zefram


Time::OlsonTZ::Data 0.202102 announcement

2021-09-24 Thread Zefram via datetime
Shortly available from all good CPAN mirrors:

  file: $CPAN/authors/id/Z/ZE/ZEFRAM/Time-OlsonTZ-Data-0.202102.tar.gz
  size: 781095 bytes
   md5: 89f437d5b14e666994009f46efbacb23
  sha1: 642e5fc40d039d8d76a03c31c37ed30ad9716b9c

Changes from the previous release:

  * Olson database version 2021b: 378 canonical zones, 217 links

-zefram


Time::OlsonTZ::Data 0.202301 announcement

2023-03-22 Thread Zefram via datetime
Shortly available from all good CPAN mirrors:

  file: $CPAN/authors/id/Z/ZE/ZEFRAM/Time-OlsonTZ-Data-0.202301.tar.gz
  size: 815719 bytes
   md5: f56223e008a3fac5204f1397b422df23
  sha1: b825d51ea304834f5d2fb827260aa67e70fff1f6

Changes from the previous release:

  * Olson database version 2023a: 351 canonical zones, 246 links

-zefram


Time::OlsonTZ::Data 0.202302 announcement

2023-03-23 Thread Zefram via datetime
Shortly available from all good CPAN mirrors:

  file: $CPAN/authors/id/Z/ZE/ZEFRAM/Time-OlsonTZ-Data-0.202302.tar.gz
  size: 816095 bytes
   md5: 59b8490bbf0eca46ce597a15f9d0b555
  sha1: 779b9933c8c4256e670d389f23ac9ddcb0fdcc33

Changes from the previous release:

  * Olson database version 2023b: 351 canonical zones, 246 links

-zefram


Time::OlsonTZ::Data 0.202303 announcement

2023-03-28 Thread Zefram via datetime
Shortly available from all good CPAN mirrors:

  file: $CPAN/authors/id/Z/ZE/ZEFRAM/Time-OlsonTZ-Data-0.202303.tar.gz
  size: 817161 bytes
sha256: 6228e749b7c0509c023fe2b20991ad134c79ab4fcf5ae7d8fcfa536535a1f08c

Changes from the previous release:

  * Olson database version 2023c: 351 canonical zones, 246 links

-zefram


Time::OlsonTZ::Data 0.202304 announcement

2023-12-22 Thread Zefram via datetime
Shortly available from all good CPAN mirrors:

  file: $CPAN/authors/id/Z/ZE/ZEFRAM/Time-OlsonTZ-Data-0.202304.tar.gz
  size: 828180 bytes
sha256: 6840f0b6b9c53405632a443c86a5d6b362b47a151a5934316c0e864d3d07aff0

Changes from the previous release:

  * Olson database version 2023d: 352 canonical zones, 245 links

-zefram


Time::OlsonTZ::Data 0.202401 announcement

2024-02-01 Thread Zefram via datetime
Shortly available from all good CPAN mirrors:

  file: $CPAN/authors/id/Z/ZE/ZEFRAM/Time-OlsonTZ-Data-0.202401.tar.gz
  size: 830162 bytes
sha256: 2b20e5053cb67512c704d6e712289a99c1c5d4003f57b34e21fb6152e1a1969f

Changes from the previous release:

  * Olson database version 2024a: 352 canonical zones, 245 links

-zefram


<    1   2   3