1Date::Manip::TZ(3)    User Contributed Perl Documentation   Date::Manip::TZ(3)
2
3
4

NAME

6       Date::Manip::TZ - an interface to the time zone data
7

SYNOPSIS

9          use Date::Manip::TZ;
10          $tz = new Date::Manip::TZ;
11
12       Data for most (and hopefully all) time zones used around the world have
13       been gathered and is publicly available in the zoneinfo (or Olson)
14       database.
15
16       This module uses the data from the zoneinfo database to perform various
17       time zone operations.
18

DESCRIPTION

20       Every time zone has some of the following characteristics:
21
22       name
23           Every time zone has a unique name. In the zoneinfo database, these
24           are something similar to:
25
26              America/New_York
27
28       aliases
29           Time zones may have (but are not required to have) one or more
30           aliases.  Each alias is unique, and is not the same as any time
31           zone name. An alias can be used in exactly the same way as a name.
32
33       periods
34           Every time zone is broken up into periods. Each period describes
35           how a portion of time relates to GMT, and how it might be
36           expressed.
37
38       Each period includes the following information:
39
40       start time, end time
41           The period begin and ends at certain times. The times are included
42           both as an absolute GMT time, and as a wallclock time.  The
43           wallclock start time is the time that will be on a clock just as
44           the period starts (i.e. after a time change). The wallclock end
45           time is the time on a clock immediately before the period ends.
46
47       offset
48           The entire period has an offset which is how much the wallclock
49           time differs from GMT.
50
51       abbreviation
52           When expressing the time period, an abbreviation (such as EST) is
53           typically used.
54
55       daylight saving time flag
56           Every period is categorized as a standard time or a daylight saving
57           time. The flag will be 1 if it is a daylight saving time, or 0 if
58           it is a standard time.
59
60       Date::Manip includes all of the data for all of the time zones from the
61       zoneinfo database. This data is available from:
62
63          ftp://elsie.nci.nih.gov/pub/
64
65       Additional data from other standards are also used.
66
67       The zoneinfo database is not necessary in order to use Date::Manip.
68       Instead, all of that data has been extracted and stored in a series of
69       other modules which are used to handle each time zone.  In that way,
70       Date::Manip has no dependency on any other source of data.
71
72       The Date::Manip::Zones document contains detailed information on the
73       data available.
74

METHODS

76       In all methods, the following variables are used:
77
78       $zone
79           This is a string which contains a valid time zone name.  For
80           example:
81
82             America/New_York
83
84       $alias
85           This is a strings which contains a valid time zone name, or a valid
86           time zone alias. For example:
87
88             America/New_York
89             US/Eastern
90             EST5EDT
91
92       $abbrev
93           This is a string which contains a valid time zone abbreviation. For
94           example:
95
96             EST
97
98       $offset
99           This is a time zone entered as an offset. An offset is either a
100           string of one of the formats:
101
102             +HH
103             +HHMM
104             +HHMMSS
105             +HH:MM
106             +HH:MM:SS
107
108           or it can be a list reference:
109
110             [HH,MM,SS]
111
112           If a list reference is used, the sign must be included with all
113           values.  So, the offset "-05:30" would be the list reference:
114
115             [-5,-30,0]
116
117       $dstflag
118           This is always one of the values: std, stdonly, dst, dstonly
119
120           It defaults to "std" if it is not present. When determining a time
121           zone, it is usually necessary to check a number of different time
122           zone and DST combinations.
123
124           If $dstflag is "std", it will check both standard and daylight
125           saving times, but will give preference to standard times. If
126           $dstflag is "stdonly", only standard times will be checked.
127
128           The "dst" and "dstonly" values are similar but will check daylight
129           saving times in preference.
130
131       $date
132           A date is always a string containing a date in one of the formats:
133
134              YYYYMMDDHH:MN:SS
135              YYYY-MM-DD-HH:MN:SS
136              YYYYMMDDHHMNSS
137
138           or a list reference:
139
140              [Y,M,D,H,MN,S]
141
142       $isdst
143           This is 0 if a date is in standard time, 1 if it is in daylight
144           saving time.
145
146       $period
147           A period is a list reference currently containing the following
148           items:
149
150              [ $dateUT, $dateLT, $offsetstr, $offset, $abbrev, $isdst,
151                $endUT, $endLT, $begUTs, $begLTs, $endUTs, $endLTs ]
152
153           $dateUT and $dateLT are the starting date of the period (i.e. the
154           first second in a period) in universal (GMT) time and local
155           (wallclock) time. $endUT and $endLT are the end date of the period
156           (i.e. the last second in a period) in universal and local time.
157           These are all stored as list references.
158
159           $offsetstr is the string representation of the offset ("+05:00:00")
160           and $offset is the corresponding list reference form ([5,0,0]).
161
162           $abbrev is the abbreviation that applies during this period, and
163           $isdst is 0 or 1 if it is standard or daylight saving time.
164
165           When accessing the elements in a period, use ONLY positive indices.
166           In other words, to get $endUT, access it as $$period[6], NOT as
167           $$period[-2], since I am looking at adding more information to the
168           period description that may speed up performance.
169
170           $begUTs is the string representation (YYYYMMDDHH:MN:SS) of $begUT.
171           Similar for $begLTs, $endUTs, and $endLTs.
172
173       The following methods are available:
174
175       base
176       config
177       err
178       new
179       new_config
180           Please refer to the Date::Manip::Obj documentation for these
181           methods.
182
183       all_periods
184              @periods = $tz->all_periods($zone,$year);
185
186           This returns the description of all time zone periods that occur
187           (in full or in part) during the given year.
188
189       convert
190       convert_to_gmt
191       convert_from_gmt
192       convert_to_local
193       convert_from_local
194           These functions convert a date from one time zone to another.
195
196              ($err,$date,$offset,$isdst,$abbrev) =
197                 $tz->convert($date,$from,$to [,$isdst]);
198
199           This converts a date in the time zone given by $from to the time
200           zone given by $to.
201
202              ($err,$date,$offset,$isdst,$abbrev) =
203                 $tz->convert_to_gmt($date [,$from] [,$isdst]);
204
205           This converts a date to GMT. If $from is given, it is the current
206           time zone of the date. If $from is omitted, it defaults to the
207           local time zone.
208
209           The value of $isdst returned is always 0.
210
211              ($err,$date,$offset,$isdst,$abbrev) =
212                 $tz->convert_from_gmt($date [,$to]);
213
214           This converts a date from GMT to another time zone. If $to is
215           given, the date is converted to that time zone. Otherwise, it is
216           converted to the local time zone.
217
218              ($err,$date,$offset,$isdst,$abbrev) =
219                 $tz->convert_to_local($date [,$from] [,$isdst]);
220              ($err,$date,$offset,$isdst,$abbrev) =
221                 $tz->convert_from_local($date [,$to] [,$isdst]);
222
223           Similar to the convert_to_gmt and convert_from_gmt functions. If
224           $from or $to are omitted, they default to GMT.
225
226           If there is any ambiguity about whether $date is in DST or not
227           (i.e.  if it is a date that is repeated during a time change due to
228           the clock being moved back), the $isdst option can be passed in as
229           an argument (it should be 0 or 1) to say which time to use. It is
230           ignored in all cases where $date can be determined without that
231           information.
232
233           The $isdst value passed back is 1 if the converted date is in DST.
234           The $offset value passed back is a list reference containing the
235           offset from GMT. $abbrev passed back is the time zone abbreviation.
236
237           Error codes are:
238
239              0  No error
240              1  Invalid arguments
241              2  Invalid FROM zone
242              3  Invalid TO zone
243              4  Invalid date
244
245       curr_zone
246              $tz->curr_zone();
247
248           This returns the system time zone. The system time zone is
249           determined using the methods described below in the DETERMINING THE
250           SYSTEM TIME ZONE section.
251
252           This is the time zone that is used by default unless the SetDate or
253           ForceDate config variable is set to a different zone.
254
255              $tz->curr_zone(1);
256
257           This clears the system time zone and re-determines it using the
258           methods described below.
259
260           The main reason to do this is if the curr_zone_methods method is
261           used to change how the time zone is determined.
262
263       curr_zone_methods
264              $tz->curr_zone_methods(@methods);
265
266           This sets the list and order of methods to use in determining the
267           local time zone. The various methods available are listed below in
268           the section DETERMINING THE SYSTEM TIME ZONE.
269
270           Some methods may require one or more arguments. For example, the
271           method named "mainvar" takes an option that is the name of a
272           variable. The arguments must be included in the @methods list
273           immediately after the method name (so @methods is actually a
274           mixture of method names and arguments).
275
276           This method may not be used in any environment where taint checking
277           is enabled. If it is, it will issue a warning, but will NOT change
278           the method list.
279
280       date_period
281              $period = $tz->date_period($date,$zone,$wallclock [,$isdst]);
282
283           This returns the period information for the given date. $date
284           defaults to GMT, but may be given as local (i.e. wallclock) time if
285           $wallclock is non-zero. The period information is described in the
286           periods method below.
287
288           If a wallclock time is given, no period is returned if the
289           wallclock time doesn't ever appear (such as when a time change
290           results in the clock moving forward "skipping" a period of time).
291           If the wallclock time appears twice (i.e. when a time change
292           results in the clock being set back), the $isdst variable is used.
293           The standard time is used unless $isdst is non-zero.  $isdst is
294           ignored except in the case where there are two possible periods.
295
296       define_abbrev
297              ($err,$val) = $tz->define_abbrev($abbrev,@zone);
298
299           When encountering an abbreviation, by default, all time zones which
300           ever include the abbreviation will be examine in the order given in
301           the Date::Manip::Zones manual.
302
303           Occasionally, it may be necessary to change the order. This is true
304           if you are parsing dates in a time zone which uses an abbreviation
305           which is also used in another time zone, and where the other time
306           zone is given preference. As an example, the abbreviation "ADT"
307           will default to the "Atlantic/Bermuda" time zone. If you are in the
308           "America/Halifax" time zone (which also uses that abbreviation),
309           you may want to change the order of time zones.
310
311           This will take an abbreviation (which must be a known
312           abbreviation... there is no means of defining a totally new
313           abbreviation) and a list of zones.  This will set the list of zones
314           that will be checked, and the order in which they are checked, when
315           a date is encountered with the given abbreviation. It is not
316           necessary that the list include every zone that has ever used the
317           abbreviation, but it may not include a zone that has never used it.
318
319           If $abbrev is "reset", all abbreviations are reset to the standard
320           values.  If @zone includes only the element 'reset', the default
321           list for $abbrev is restored.
322
323           The following error codes are returned:
324
325              0  No error
326              1  $abbrev is not a valid abbreviation in any time zone
327              2  A zone (returned as $val) is not a valid time zone
328              3  A zone (returned as $val) does not use the abbreviation
329
330           For more information about the different zones which may correspond
331           to each abbreviation, and the order in which they will be examined
332           by default, refer to the Date::Manip::Zones manual.
333
334       define_alias
335              $err = $tz->define_alias($alias,$zone);
336
337           This will define a new alias (or override an existing alias). $zone
338           must be a valid zone or an error is returned.
339
340           For more information about the different aliases which are set by
341           default, refer to the Date::Manip::Zones manual.
342
343           If $alias is "reset", all aliases will be reset to the standard
344           values.  If $zone is "reset", $alias will be reset to the standard
345           value.
346
347       define_offset
348              ($err,$val) = $tz->define_offset($offset, [$dstflag,] @zone);
349
350           This is similar to the define_abbrev method. When an offset is
351           encountered, all time zones which have ever included that offset
352           are checked. This will defined which time zones, and in what order,
353           they should be checked.
354
355           The zones to both standard and daylight saving times which include
356           the offset (if $dstflag is "std" or "dst") or to only one or the
357           other.
358
359           If $offset is "reset", all lists are reset to the default values.
360           If @zone includes only the element 'reset', the default list and
361           order is restored for $offset ($dstflag must not be given).
362
363           The following error codes are returned:
364
365              0  No error
366              1  $offset is not a valid offset in any time zone
367              2  $offset is not a valid offset in the selected
368                 time (if doing "dstonly" or "stdonly")
369              3  A zone (returned as $val) is not a valid time zone
370              4  A zone (returned as $val) does not use the offset
371              5  A zone (returned as $val) does not include the
372                 offset in the selected time (if doing "dstonly"
373                 or "stdonly")
374
375              9  Offset is not a valid offset
376
377       periods
378              @periods = $tz->periods($zone,$year);
379
380           This returns the description of all time zone periods that begin
381           during the year given. The year is measured in universal (GMT)
382           time.
383
384           If no time zone period starts in the given year, nothing is
385           returned.
386
387              @periods = $tz->periods($zone,undef,$year);
388
389           This returns all periods that begin in any year from 0001 to $year.
390
391              @periods = $tz->periods($zone,$year0,$year1);
392
393           This returns all periods that begin in any year from $year0 to
394           $year1.
395
396       tzdata
397       tzcode
398              $vers = $tz->tzdata();
399              $vers = $tz->tzcode();
400
401           These return the versions of the tzdata and tzcode packages used to
402           generate the modules.
403
404       zone
405              $zone = $tz->zone(@args);
406              @zone = $tz->zone(@args);
407
408           This function will return a list of all zones, or the default zone,
409           which matches all of the supplied information. In scalar context,
410           it will return only the default zone. In list context, it will
411           return all zones.
412
413           @args may include any of the following items, and the order is not
414           important.
415
416              A zone name or alias ($alias)
417
418              A zone abbreviation ($abbrev)
419
420              An offset ($offset)
421
422              A dstflag ($dstflag)
423
424              A date ($date)
425
426           It is NOT valid to include two of any of the items. Any time zone
427           returned will match all of the data supplied.
428
429           If an error occurs, undef is returned. If no zone matches, an empty
430           string, or an empty list is returned.
431
432           The order of the zones will be determined in the following way:
433
434           If $abbrev is given, the order of time zones will be determined by
435           it (and $dstflag). If $dstflag is "std", all zones which match
436           $abbrev in standard time are included, followed by all that match
437           $abbrev in saving time (but no duplication is allowed). The reverse
438           is true if $dstflag is "dst".
439
440           If $abbrev is not given, but $offset is, $offset (and $dstflag)
441           will determine the order given. If $dstflag is "std", all zones
442           which match $offset in standard time are included, followed by all
443           that match $offset in saving time (but no duplication is allowed).
444           The reverse is true if $dstflag is "dst".
445
446           If $date is given, only zones in which $date will appear in a zone
447           that matches all other information are given. $date is a wallclock
448           time.
449
450           If no $zone, $abbrev, or $offset are entered, the local time zone
451           may be returned (unless $date is entered, and it doesn't exist in
452           the local time zone).
453
454           NOTE: there is one important thing to note with respect to $dstflag
455           when you are working with a timezone expressed as an offset and a
456           date is passed in. In this case, the default value of $dstflag is
457           "dst" (NOT "stdonly"), and you probably never want to pass in a
458           value of "std" (though passing in "stdonly" is okay).
459
460           For standard offsets (with no minute component), there is always a
461           standard timezone which matches that offset. For example, the
462           timezone "+0100" matches the timezone "Etc/GMT+01", so you will
463           never get a timezone in daylight saving time if $dstflag is "std".
464
465           If you want to pass in a date of 2001-07-01-00:00:00 and an
466           timezone of "+0100" and you want to get a timezone that refers to
467           that date as a daylight saving time date, you must use the $dstflag
468           of "dst" (or "dstonly").
469
470           Because this is almost always the behavior desired, when a zone is
471           passed in as an offset, and a date is passed in, the default
472           $dstflag is "dst" instead of "std". In all other situations, the
473           default is still "std".
474
475           If the timezone is expressed as an abbreviation, this problem does
476           not occur.
477

TIME ZONE INFORMATION IN DATE::MANIP

479       Date::Manip makes use of three potentially different time zones when
480       working with a date.
481
482       The first time zone that may be used is the actual local time zone.
483       This is the time zone that the computer is actually running in.
484
485       The second time zone is the working time zone. Usually, you will want
486       the default time zone to be the local time zone, but occasionally, you
487       may want the default time zone to be different.
488
489       The third time zone is the actual time zone that was parsed, or set,
490       for a date. If a date contains no time zone information, it will
491       default to the working time zone.
492
493       The local time zone is determined using the methods described in the
494       following section. The preferred way is to locate the time zone in some
495       system file, or using some system command, or (in the case of a Windows
496       operating system) to look it up in the registry. If all of these
497       methods fail, the local time zone may be set using either the $::TZ or
498       $ENV{TZ} variables. Please note that these should ONLY be used to set
499       the actual local time zone.
500
501       If you are running in one time zone, but you want to force dates to be
502       specified in an alternate time zone by default, you need to set the
503       working time zone. The working time zone defaults to the local time
504       zone, but this can be changed using either the SetDate or ForceDate
505       config variables. Refer to the Date::Manip::Config manual for more
506       information.
507
508       Finally, when a date is actually parsed, if it contains any time zone
509       information, the date is stored in that time zone.
510

DETERMINING THE SYSTEM TIME ZONE

512       There are a large number of ways available for determining the time
513       zone. Some or all of them may be checked. A list of methods to use is
514       provided by default, and may be overridden by the curr_zone_methods
515       function described above. To override the default order and/or list of
516       methods, just pass in a list of method names (with arguments where
517       necessary), and only those methods will be done, and in the order
518       given.
519
520       The following methods are available:
521
522          Method     Argument(s)    Procedure
523          ======     ===========    =========
524
525          main       VAR            The main variable named VAR is
526                                    checked. E.g. "main TZ" checks
527                                    the variable $::TZ .
528
529          env        TYPE VAR       The named environment variable
530                                    is checked and the type of
531                                    data stored there (TYPE can
532                                    be 'zone' or 'offset' which
533                                    is the number of seconds from
534                                    UTC).
535
536          file       FILE           Look in the given file for any
537                                    one of the following case
538                                    insensitive lines:
539                                       ZONE
540                                       tz = ZONE
541                                       zone = ZONE
542                                       timezone = ZONE
543                                    ZONE may be quoted (single or
544                                    double) and whitespace is
545                                    ignored. If the entire line
546                                    is a zone, it must be the first
547                                    non-blank non-comment line in
548                                    the file.
549
550          command    COMMAND        Runs a command which produces
551                                    a time zone as the output.
552
553          cmdfield   COMMAND N      Runs a command which produces
554                                    whitespace separated fields,
555                                    the Nth one containing the
556                                    time zone (fields are numbered
557                                    starting at 0, or from the
558                                    end starting at -1).
559
560          gmtoff                    Uses the current offset from
561                                    GMT to come up with a best guess.
562
563          registry                  Look up the value in the
564                                    Windows registry. This is only
565                                    available to hosts running a
566                                    Windows operating system.
567
568       Note that the "main" and "env" methods should only be used to specify
569       the actual time zone the system is running in. Use the SetDate and
570       ForceDate config variables to specify an alternate time zone that you
571       want to work in.
572
573       By default, the following methods are checked (in the order given) on
574       Unix systems:
575
576          main     TZ
577          env      zone TZ
578          file     /etc/TIMEZONE
579          file     /etc/timezone
580          file     /etc/sysconfig/clock
581          file     /etc/default/init
582          command  "/bin/date +%Z"
583          command  "/usr/bin/date +%Z"
584          command  "/usr/local/bin/date +%Z"
585          cmdfield /bin/date             -2
586          cmdfield /usr/bin/date         -2
587          cmdfield /usr/local/bin/date   -2
588          gmtoff
589
590       The default methods for Windows systems are:
591
592          main     TZ
593          env      zone TZ
594          registry
595          gmtoff
596
597       The default methods for VMS systems are:
598
599          main     TZ
600          env      zone TZ
601          env      zone SYS$TIMEZONE_NAME
602          env      zone UCX$TZ
603          env      zone TCPIP$TZ
604          env      zone MULTINET_TIMEZONE
605          env      offset SYS$TIMEZONE_DIFFERENTIAL
606          gmtoff
607
608       The default methods for all other systems are:
609
610          main     TZ
611          env      zone TZ
612          gmtoff
613
614       If anyone wants better support for a specific OS, please contact me and
615       we'll coordinate adding it.
616
617       In all cases, the value returned from the method may be any of the
618       following:
619
620          the full name of a time zone (e.g. America/New_York)
621          or an alias
622
623          an abbreviation (e.g. EDT) which will be used to
624          determine the zone if possible
625
626          an offset (+hh, +hhmn, +hh:mm, +hh:mm:ss) from GMT
627
628       The Date::Manip::Zones module contains information about the time zones
629       and aliases available, and what time zones contain the abbreviations.
630

DESIGN ISSUES

632       The design decisions made in writing this module may cause some
633       questions (and probably complaints).  The time zone modules are all
634       generated using scripts (included in the Date::Manip distribution)
635       which use the standard tzdata tools to parse the tzdata files and store
636       that information in perl modules.
637
638       I'd like to address some of them, to avoid answering some of the "why
639       did you do it that way" remarks. I do welcome discussion about these
640       decisions... but preferably after you understand why those decisions
641       were made so that that we have an informed basis to begin a discussion.
642
643       Why not use existing zoneinfo files
644           Some people will probably think that I should have written an
645           interface to the zoneinfo files which are distributed with most
646           operating systems.  Although I considered doing that, I rejected
647           the idea for two reasons.
648
649           First, not all operating systems come with the zoneinfo databases
650           in a user accessible state (Micro$oft for example).  Even those
651           that do include them store the information in various formats and
652           locations.  In order to bypass all that, I have included the data
653           directly in these modules.
654
655           Second, as I was doing my initial investigations into this, I ran
656           into a bug in the Solaris zoneinfo tools (long since fixed I'm
657           sure).  I decided then that I didn't want to depend on an
658           implementation where I could not control and fix the bugs.
659
660       Why not use the native tzdata files
661           Another decision people may question is that I parse the tzdata
662           files and store the data from them in a large number of perl
663           modules instead of creating an interface to the tzdata files
664           directly. This was done solely for the sake of speed.  Date::Manip
665           is already a slow module.  I didn't want to slow it down further by
666           doing the complex parsing required to interpret the tzdata files
667           while manipulating dates.  By storing the data in these modules,
668           there is little or no parsing done while using Date::Manip modules.
669           It costs a little disk space to store this information... but very
670           little of it is actually loaded at runtime (time zone data is only
671           loaded when the time zone is actually referred to), so I feel it's
672           a good tradeoff.
673
674       Why store the information in so many files
675           The data from the native tzdata files are parsed and stored in two
676           sets of modules. These include almost 500 Date::Manip::Offset::*
677           modules and almost 450 Date::Manip::TZ::* modules.
678
679           I note that on my linux box, /usr/share/zoneinfo (which contains
680           data files generated from the tzdata files) contains over 1700
681           files, so I'm not doing anything "new" by breaking up the
682           information into separate files. And doing so has a huge impact on
683           performance... it is not necessary to load and/or manipulate data
684           from time zones which are not in use.
685
686           The minute I made the decision to distribute the timezone
687           information myself, as opposed to using the system version, it was
688           a given that there would be a lot of files.
689
690           These modules are loaded only when the time zone or offset is
691           actually used, so, unless dates from around the world are being
692           parsed, only a very small number of these modules will actually be
693           loaded. In many applications, only a single TZ module will be
694           loaded. If parsing dates which have timezone information stored as
695           offsets, one or two Offset modules will also be loaded.
696
697       The disk space seems excessive
698           Currently, the disk usage of the perl files is around 9 MB. Total
699           disk usage for /usr/share/zoneinfo on my computer is around 4 MB.
700           There are a couple of differences.
701
702           The primary difference is that the zoneinfo files are stored in a
703           binary (and hence, more compressed) version, where the perl modules
704           have all the data in pure text.
705
706           Since these are all automatically generated and used, it may be
707           beneficial to store the data in some packed binary format instead
708           of the fully expanded text form that is currently in use. This
709           would decrease the disk space usage, and might improve performance.
710           However, the performance improvement would happen only once per
711           timezone, and would make for more complicated code, so I'm not very
712           interested in pursuing this.
713
714           Another aspect of the current modules is that they all include pod
715           documentation. Although not necessary, this allows users to easily
716           see what modules handle which time zones, and that's nice. It also
717           allows me to use pod_coverage tests for the module which is a nice
718           check to make sure that the documentation is accurate.
719
720           All told, I don't consider the disk usage excessive at all.
721

KNOWN PROBLEMS OR ISSUES

723       Unable to determine Time Zone
724           When using Date::Manip, when the module is initialized, it must be
725           able to determine the local time zone. If it fails to do so, an
726           error will occur:
727
728              Unable to determine Time Zone
729
730           and the script will exit.
731
732           In the past, this was the most common problem with using
733           Date::Manip .  With the release of 6.00, this problem should be
734           significantly less common. If you do get this error, please refer
735           to the section above DETERMINING THE SYSTEM TIME ZONE for
736           information about determining the local time zone. I am also
737           interested in hearing about this so that I can update the default
738           list of methods to be able to determine the local time zone better.
739
740       Asia/Jerusalem time zone
741           The Asia/Jerusalem time zone has a non-standard way of specifying
742           the start and end of Daylight Saving Time based on the Hebrew
743           calendar.
744
745           As a result, there is no way to specify a simple rule to define
746           time zone changes for all years in the future. As such, this module
747           supports all time zone changes currently specified in the zoneinfo
748           database (which currently goes to the year 2037) but does not
749           attempt to correctly handle zone changes beyond that date. As a
750           result, Date::Manip should not be used to parse dates in the
751           Jerusalem time zone that are far enough in the future that
752           information is not included in the current version of the zoneinfo
753           database.
754
755       LMT and zzz abbreviations
756           Both the LMT and zzz abbreviations are used in the zoneinfo
757           databases.  LMT is use for most time zones for the times before the
758           Gregorian calendar was adopted, and zzz is used for a few where the
759           time zone was created and no description of dates prior to that are
760           supported. Both LMT and zzz are basically ignored in parsing dates
761           (because there is no reasonable way to determine which zone they
762           are referring to), and will be treated as the local time zone
763           regardless.
764

KNOWN BUGS

766       None known.
767

BUGS AND QUESTIONS

769       Please refer to the Date::Manip::Problems documentation for information
770       on submitting bug reports or questions to the author.
771

SEE ALSO

773       Date::Manip        - main module documentation
774

LICENSE

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

AUTHOR

780       Sullivan Beck (sbeck@cpan.org)
781
782
783
784perl v5.10.1                      2011-12-07                Date::Manip::TZ(3)
Impressum