tzset/_r POSIX tz abbr angle bracket <> support testing

Brian Inglis <[email protected]>
Newsgroups gmane.comp.lib.newlib
Organization Systematic Software
Message-ID <[email protected]>
Hi folks,

Finally submitted a patch I believe should be close to acceptable.

Attached are a test program kludged to build and run under Cygwin, and a 
shell script to run it, to test against all the unique POSIX fallback 
rules added as a line at the end of each of the /usr/share/zoneinfo/ 
files, and the result log from the test run dumping the input and 
internal tz data structures.

-- 
Take care. Thanks, Brian Inglis, Calgary, Alberta, Canada

This email may be disturbing to some readers as it contains
too much technical detail. Reader discretion is advised.
[Data in binary units and prefixes, physical quantities in SI.]
tzset_t.c (text/plain, 1.1 KB)
#include <reent.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <sys/types.h>
#include <sys/time.h>
#include <sys/_tz_structs.h>
#include "local.h"


char *
_getenv_r( struct _reent *r, const char *var)
{
    return getenv(var);
}



int siscanf(const char *str, const char *fmt, ...)
{
    va_list ap;
    va_start(ap,fmt);
    int rc = vsscanf(str, fmt, ap);
    va_end(ap);
    return rc;
}



int
main(void)
{
    __tzinfo_type *tz = __gettzinfo ();

    tzset();
    printf("TZ='%s'\n"
	    "std '%s'\tdst '%s'\ttz %ld\tdl %d\tn %d\ty %d\n"
	    "std c '%c'\tm %d\tn %d\td %d\ts %d\to %ld\ttt %ld\n"
	    "dst c '%c'\tm %d\tn %d\td %d\ts %d\to %ld\ttt %ld\n\n",
		getenv("TZ"),
		_tzname[0], _tzname[1], _timezone, _daylight,
		tz->__tznorth, tz->__tzyear,
		tz->__tzrule[0].ch,
		tz->__tzrule[0].m, tz->__tzrule[0].n, tz->__tzrule[0].d,
		tz->__tzrule[0].s, tz->__tzrule[0].offset,
		tz->__tzrule[0].change,
		tz->__tzrule[1].ch,
		tz->__tzrule[1].m, tz->__tzrule[1].n, tz->__tzrule[1].d,
		tz->__tzrule[1].s, tz->__tzrule[1].offset,
		tz->__tzrule[1].change);
}
tzset_t.sh (text/plain, 499 B)
#!/bin/sh
# tzset_t.sh - test tzset/_r POSIX string support changes

gcc -D__SINGLE_THREAD__=1 -o tzset_t tzset_t.c tzset.c tzset_r.c tzcalc_limits.c tzvars.c gettzinfo.c tzlock.c month_lengths.c

# test against fallback POSIX rule in line at end of most zoneinfo files
# skip lines in non-zoneinfo files with spaces and skip duplicate rules
find /usr/share/zoneinfo/ ! -type d	| \
xargs tail -qn1				| \
grep -v '\s'				| \
sort -u					| \
while read TZ
do
    TZ=$TZ ./tzset_t
done	> tzset_t.log
tzset_t.log (text/plain, 14.4 KB)
TZ=''
std '   '	dst '   '	tz 0	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='<+00>0<+02>-2,M3.5.0/1,M10.5.0/3'
std '+00'	dst '+02'	tz 0	dl 1	n 1	y 0
std c 'M'	m 3	n 5	d 0	s 3600	o 0	tt 0
dst c 'M'	m 10	n 5	d 0	s 10800	o -7200	tt 0

TZ='<+01>-1'
std '+01'	dst '+01'	tz -3600	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o -3600	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='<+02>-2'
std '+02'	dst '+02'	tz -7200	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o -7200	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='<+03>-3'
std '+03'	dst '+03'	tz -10800	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o -10800	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='<+0330>-3:30<+0430>,J79/24,J263/24'
std '+0330'	dst '+0430'	tz -12600	dl 1	n 1	y 0
std c 'J'	m 0	n 0	d 79	s 86400	o -12600	tt 0
dst c 'J'	m 0	n 0	d 263	s 86400	o -16200	tt 0

TZ='<+04>-4'
std '+04'	dst '+04'	tz -14400	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o -14400	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='<+0430>-4:30'
std '+0430'	dst '+0430'	tz -16200	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o -16200	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='<+05>-5'
std '+05'	dst '+05'	tz -18000	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o -18000	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='<+0530>-5:30'
std '+0530'	dst '+0530'	tz -19800	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o -19800	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='<+0545>-5:45'
std '+0545'	dst '+0545'	tz -20700	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o -20700	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='<+06>-6'
std '+06'	dst '+06'	tz -21600	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o -21600	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='<+0630>-6:30'
std '+0630'	dst '+0630'	tz -23400	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o -23400	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='<+07>-7'
std '+07'	dst '+07'	tz -25200	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o -25200	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='<+08>-8'
std '+08'	dst '+08'	tz -28800	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o -28800	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='<+0845>-8:45'
std '+0845'	dst '+0845'	tz -31500	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o -31500	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='<+09>-9'
std '+09'	dst '+09'	tz -32400	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o -32400	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='<+10>-10'
std '+10'	dst '+10'	tz -36000	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o -36000	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='<+1030>-10:30<+11>-11,M10.1.0,M4.1.0'
std '+1030'	dst '+11'	tz -37800	dl 1	n 1	y 0
std c 'M'	m 10	n 1	d 0	s 7200	o -37800	tt 0
dst c 'M'	m 4	n 1	d 0	s 7200	o -39600	tt 0

TZ='<+11>-11'
std '+11'	dst '+11'	tz -39600	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o -39600	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='<+11>-11<+12>,M10.1.0,M4.1.0/3'
std '+11'	dst '+12'	tz -39600	dl 1	n 1	y 0
std c 'M'	m 10	n 1	d 0	s 7200	o -39600	tt 0
dst c 'M'	m 4	n 1	d 0	s 10800	o -43200	tt 0

TZ='<+12>-12'
std '+12'	dst '+12'	tz -43200	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o -43200	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='<+12>-12<+13>,M11.2.0,M1.2.3/99'
std '+12'	dst '+13'	tz -43200	dl 1	n 1	y 0
std c 'M'	m 11	n 2	d 0	s 7200	o -43200	tt 0
dst c 'M'	m 1	n 2	d 3	s 356400	o -46800	tt 0

TZ='<+1245>-12:45<+1345>,M9.5.0/2:45,M4.1.0/3:45'
std '+1245'	dst '+1345'	tz -45900	dl 1	n 1	y 0
std c 'M'	m 9	n 5	d 0	s 9900	o -45900	tt 0
dst c 'M'	m 4	n 1	d 0	s 13500	o -49500	tt 0

TZ='<+13>-13'
std '+13'	dst '+13'	tz -46800	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o -46800	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='<+14>-14'
std '+14'	dst '+14'	tz -50400	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o -50400	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='<-00>0'
std '-00'	dst '-00'	tz 0	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='<-01>1'
std '-01'	dst '-01'	tz 3600	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o 3600	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='<-01>1<+00>,M3.5.0/0,M10.5.0/1'
std '-01'	dst '+00'	tz 3600	dl 1	n 1	y 0
std c 'M'	m 3	n 5	d 0	s 0	o 3600	tt 0
dst c 'M'	m 10	n 5	d 0	s 3600	o 0	tt 0

TZ='<-02>2'
std '-02'	dst '-02'	tz 7200	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o 7200	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='<-03>3'
std '-03'	dst '-03'	tz 10800	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o 10800	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='<-03>3<-02>,M3.2.0,M11.1.0'
std '-03'	dst '-02'	tz 10800	dl 1	n 1	y 0
std c 'M'	m 3	n 2	d 0	s 7200	o 10800	tt 0
dst c 'M'	m 11	n 1	d 0	s 7200	o 7200	tt 0

TZ='<-03>3<-02>,M3.5.0/-2,M10.5.0/-1'
std '-03'	dst '-02'	tz 10800	dl 1	n 1	y 0
std c 'M'	m 3	n 5	d 0	s 235922400	o 10800	tt 0
dst c 'M'	m 10	n 5	d 0	s 235926000	o 7200	tt 0

TZ='<-04>4'
std '-04'	dst '-04'	tz 14400	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o 14400	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='<-04>4<-03>,M10.1.0/0,M3.4.0/0'
std '-04'	dst '-03'	tz 14400	dl 1	n 1	y 0
std c 'M'	m 10	n 1	d 0	s 0	o 14400	tt 0
dst c 'M'	m 3	n 4	d 0	s 0	o 10800	tt 0

TZ='<-04>4<-03>,M9.1.6/24,M4.1.6/24'
std '-04'	dst '-03'	tz 14400	dl 1	n 1	y 0
std c 'M'	m 9	n 1	d 6	s 86400	o 14400	tt 0
dst c 'M'	m 4	n 1	d 6	s 86400	o 10800	tt 0

TZ='<-05>5'
std '-05'	dst '-05'	tz 18000	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o 18000	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='<-06>6'
std '-06'	dst '-06'	tz 21600	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o 21600	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='<-06>6<-05>,M9.1.6/22,M4.1.6/22'
std '-06'	dst '-05'	tz 21600	dl 1	n 1	y 0
std c 'M'	m 9	n 1	d 6	s 79200	o 21600	tt 0
dst c 'M'	m 4	n 1	d 6	s 79200	o 18000	tt 0

TZ='<-07>7'
std '-07'	dst '-07'	tz 25200	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o 25200	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='<-08>8'
std '-08'	dst '-08'	tz 28800	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o 28800	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='<-09>9'
std '-09'	dst '-09'	tz 32400	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o 32400	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='<-0930>9:30'
std '-0930'	dst '-0930'	tz 34200	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o 34200	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='<-10>10'
std '-10'	dst '-10'	tz 36000	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o 36000	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='<-11>11'
std '-11'	dst '-11'	tz 39600	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o 39600	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='<-12>12'
std '-12'	dst '-12'	tz 43200	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o 43200	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='ACST-9:30'
std 'ACST'	dst 'ACST'	tz -34200	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o -34200	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='ACST-9:30ACDT,M10.1.0,M4.1.0/3'
std 'ACST'	dst 'ACDT'	tz -34200	dl 1	n 1	y 0
std c 'M'	m 10	n 1	d 0	s 7200	o -34200	tt 0
dst c 'M'	m 4	n 1	d 0	s 10800	o -37800	tt 0

TZ='AEST-10'
std 'AEST'	dst 'AEST'	tz -36000	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o -36000	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='AEST-10AEDT,M10.1.0,M4.1.0/3'
std 'AEST'	dst 'AEDT'	tz -36000	dl 1	n 1	y 0
std c 'M'	m 10	n 1	d 0	s 7200	o -36000	tt 0
dst c 'M'	m 4	n 1	d 0	s 10800	o -39600	tt 0

TZ='AKST9AKDT,M3.2.0,M11.1.0'
std 'AKST'	dst 'AKDT'	tz 32400	dl 1	n 1	y 0
std c 'M'	m 3	n 2	d 0	s 7200	o 32400	tt 0
dst c 'M'	m 11	n 1	d 0	s 7200	o 28800	tt 0

TZ='AST4'
std 'AST'	dst 'AST'	tz 14400	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o 14400	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='AST4ADT,M3.2.0,M11.1.0'
std 'AST'	dst 'ADT'	tz 14400	dl 1	n 1	y 0
std c 'M'	m 3	n 2	d 0	s 7200	o 14400	tt 0
dst c 'M'	m 11	n 1	d 0	s 7200	o 10800	tt 0

TZ='AWST-8'
std 'AWST'	dst 'AWST'	tz -28800	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o -28800	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='CAT-2'
std 'CAT'	dst 'CAT'	tz -7200	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o -7200	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='CET-1'
std 'CET'	dst 'CET'	tz -3600	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o -3600	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='CET-1CEST,M3.5.0,M10.5.0/3'
std 'CET'	dst 'CEST'	tz -3600	dl 1	n 1	y 0
std c 'M'	m 3	n 5	d 0	s 7200	o -3600	tt 0
dst c 'M'	m 10	n 5	d 0	s 10800	o -7200	tt 0

TZ='ChST-10'
std 'ChST'	dst 'ChST'	tz -36000	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o -36000	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='CST5CDT,M3.2.0/0,M11.1.0/1'
std 'CST'	dst 'CDT'	tz 18000	dl 1	n 1	y 0
std c 'M'	m 3	n 2	d 0	s 0	o 18000	tt 0
dst c 'M'	m 11	n 1	d 0	s 3600	o 14400	tt 0

TZ='CST6'
std 'CST'	dst 'CST'	tz 21600	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o 21600	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='CST6CDT,M3.2.0,M11.1.0'
std 'CST'	dst 'CDT'	tz 21600	dl 1	n 1	y 0
std c 'M'	m 3	n 2	d 0	s 7200	o 21600	tt 0
dst c 'M'	m 11	n 1	d 0	s 7200	o 18000	tt 0

TZ='CST6CDT,M4.1.0,M10.5.0'
std 'CST'	dst 'CDT'	tz 21600	dl 1	n 1	y 0
std c 'M'	m 4	n 1	d 0	s 7200	o 21600	tt 0
dst c 'M'	m 10	n 5	d 0	s 7200	o 18000	tt 0

TZ='CST-8'
std 'CST'	dst 'CST'	tz -28800	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o -28800	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='EAT-3'
std 'EAT'	dst 'EAT'	tz -10800	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o -10800	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='EET-2'
std 'EET'	dst 'EET'	tz -7200	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o -7200	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='EET-2EEST,M2.5.4/24,M10.5.5/1'
std 'EET'	dst 'EEST'	tz -7200	dl 1	n 1	y 0
std c 'M'	m 2	n 5	d 4	s 86400	o -7200	tt 0
dst c 'M'	m 10	n 5	d 5	s 3600	o -10800	tt 0

TZ='EET-2EEST,M3.4.4/72,M10.4.4/25'
std 'EET'	dst 'EEST'	tz -7200	dl 1	n 1	y 0
std c 'M'	m 3	n 4	d 4	s 259200	o -7200	tt 0
dst c 'M'	m 10	n 4	d 4	s 90000	o -10800	tt 0

TZ='EET-2EEST,M3.5.0,M10.5.0/3'
std 'EET'	dst 'EEST'	tz -7200	dl 1	n 1	y 0
std c 'M'	m 3	n 5	d 0	s 7200	o -7200	tt 0
dst c 'M'	m 10	n 5	d 0	s 10800	o -10800	tt 0

TZ='EET-2EEST,M3.5.0/0,M10.5.0/0'
std 'EET'	dst 'EEST'	tz -7200	dl 1	n 1	y 0
std c 'M'	m 3	n 5	d 0	s 0	o -7200	tt 0
dst c 'M'	m 10	n 5	d 0	s 0	o -10800	tt 0

TZ='EET-2EEST,M3.5.0/3,M10.5.0/4'
std 'EET'	dst 'EEST'	tz -7200	dl 1	n 1	y 0
std c 'M'	m 3	n 5	d 0	s 10800	o -7200	tt 0
dst c 'M'	m 10	n 5	d 0	s 14400	o -10800	tt 0

TZ='EET-2EEST,M3.5.5/0,M10.5.5/0'
std 'EET'	dst 'EEST'	tz -7200	dl 1	n 1	y 0
std c 'M'	m 3	n 5	d 5	s 0	o -7200	tt 0
dst c 'M'	m 10	n 5	d 5	s 0	o -10800	tt 0

TZ='EST5'
std 'EST'	dst 'EST'	tz 18000	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o 18000	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='EST5EDT,M3.2.0,M11.1.0'
std 'EST'	dst 'EDT'	tz 18000	dl 1	n 1	y 0
std c 'M'	m 3	n 2	d 0	s 7200	o 18000	tt 0
dst c 'M'	m 11	n 1	d 0	s 7200	o 14400	tt 0

TZ='GMT0'
std 'GMT'	dst 'GMT'	tz 0	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='GMT0BST,M3.5.0/1,M10.5.0'
std 'GMT'	dst 'BST'	tz 0	dl 1	n 1	y 0
std c 'M'	m 3	n 5	d 0	s 3600	o 0	tt 0
dst c 'M'	m 10	n 5	d 0	s 7200	o -3600	tt 0

TZ='GMT0IST,M3.5.0/1,M10.5.0'
std 'GMT'	dst 'IST'	tz 0	dl 1	n 1	y 0
std c 'M'	m 3	n 5	d 0	s 3600	o 0	tt 0
dst c 'M'	m 10	n 5	d 0	s 7200	o -3600	tt 0

TZ='HKT-8'
std 'HKT'	dst 'HKT'	tz -28800	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o -28800	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='HST10'
std 'HST'	dst 'HST'	tz 36000	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o 36000	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='HST10HDT,M3.2.0,M11.1.0'
std 'HST'	dst 'HDT'	tz 36000	dl 1	n 1	y 0
std c 'M'	m 3	n 2	d 0	s 7200	o 36000	tt 0
dst c 'M'	m 11	n 1	d 0	s 7200	o 32400	tt 0

TZ='IST-2IDT,M3.4.4/26,M10.5.0'
std 'IST'	dst 'IDT'	tz -7200	dl 1	n 1	y 0
std c 'M'	m 3	n 4	d 4	s 93600	o -7200	tt 0
dst c 'M'	m 10	n 5	d 0	s 7200	o -10800	tt 0

TZ='IST-5:30'
std 'IST'	dst 'IST'	tz -19800	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o -19800	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='JST-9'
std 'JST'	dst 'JST'	tz -32400	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o -32400	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='KST-9'
std 'KST'	dst 'KST'	tz -32400	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o -32400	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='MET-1MEST,M3.5.0,M10.5.0/3'
std 'MET'	dst 'MEST'	tz -3600	dl 1	n 1	y 0
std c 'M'	m 3	n 5	d 0	s 7200	o -3600	tt 0
dst c 'M'	m 10	n 5	d 0	s 10800	o -7200	tt 0

TZ='MSK-3'
std 'MSK'	dst 'MSK'	tz -10800	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o -10800	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='MST7'
std 'MST'	dst 'MST'	tz 25200	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o 25200	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='MST7MDT,M3.2.0,M11.1.0'
std 'MST'	dst 'MDT'	tz 25200	dl 1	n 1	y 0
std c 'M'	m 3	n 2	d 0	s 7200	o 25200	tt 0
dst c 'M'	m 11	n 1	d 0	s 7200	o 21600	tt 0

TZ='MST7MDT,M4.1.0,M10.5.0'
std 'MST'	dst 'MDT'	tz 25200	dl 1	n 1	y 0
std c 'M'	m 4	n 1	d 0	s 7200	o 25200	tt 0
dst c 'M'	m 10	n 5	d 0	s 7200	o 21600	tt 0

TZ='NST3:30NDT,M3.2.0,M11.1.0'
std 'NST'	dst 'NDT'	tz 12600	dl 1	n 1	y 0
std c 'M'	m 3	n 2	d 0	s 7200	o 12600	tt 0
dst c 'M'	m 11	n 1	d 0	s 7200	o 9000	tt 0

TZ='NZST-12NZDT,M9.5.0,M4.1.0/3'
std 'NZST'	dst 'NZDT'	tz -43200	dl 1	n 1	y 0
std c 'M'	m 9	n 5	d 0	s 7200	o -43200	tt 0
dst c 'M'	m 4	n 1	d 0	s 10800	o -46800	tt 0

TZ='PKT-5'
std 'PKT'	dst 'PKT'	tz -18000	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o -18000	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='PST-8'
std 'PST'	dst 'PST'	tz -28800	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o -28800	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='PST8PDT,M3.2.0,M11.1.0'
std 'PST'	dst 'PDT'	tz 28800	dl 1	n 1	y 0
std c 'M'	m 3	n 2	d 0	s 7200	o 28800	tt 0
dst c 'M'	m 11	n 1	d 0	s 7200	o 25200	tt 0

TZ='PST8PDT,M4.1.0,M10.5.0'
std 'PST'	dst 'PDT'	tz 28800	dl 1	n 1	y 0
std c 'M'	m 4	n 1	d 0	s 7200	o 28800	tt 0
dst c 'M'	m 10	n 5	d 0	s 7200	o 25200	tt 0

TZ='SAST-2'
std 'SAST'	dst 'SAST'	tz -7200	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o -7200	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='SST11'
std 'SST'	dst 'SST'	tz 39600	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o 39600	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='UTC0'
std 'UTC'	dst 'UTC'	tz 0	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='WAT-1'
std 'WAT'	dst 'WAT'	tz -3600	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o -3600	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='WET0WEST,M3.5.0/1,M10.5.0'
std 'WET'	dst 'WEST'	tz 0	dl 1	n 1	y 0
std c 'M'	m 3	n 5	d 0	s 3600	o 0	tt 0
dst c 'M'	m 10	n 5	d 0	s 7200	o -3600	tt 0

TZ='WIB-7'
std 'WIB'	dst 'WIB'	tz -25200	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o -25200	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='WIT-9'
std 'WIT'	dst 'WIT'	tz -32400	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o -32400	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='WITA-8'
std 'WITA'	dst 'WITA'	tz -28800	dl 0	n 1	y 0
std c 'J'	m 0	n 0	d 0	s 0	o -28800	tt 0
dst c 'J'	m 0	n 0	d 0	s 0	o 0	tt 0

TZ='XXX-0:40<+01>-0:20,0/0,J365/23:40'
std 'XXX'	dst '+01'	tz -2400	dl 1	n 1	y 0
std c 'D'	m 0	n 0	d 0	s 0	o -2400	tt 0
dst c 'J'	m 0	n 0	d 365	s 85200	o -1200	tt 0
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.