diff options
author | sebres <sebres@users.sourceforge.net> | 2018-05-29 17:11:52 (GMT) |
---|---|---|
committer | sebres <sebres@users.sourceforge.net> | 2018-05-29 17:11:52 (GMT) |
commit | 9b3dad29d72deaf01d61c8eeb18a238ca1854eb9 (patch) | |
tree | 88fc872a7e53ec8dcb215e04fa44a66dadc1def7 /generic/tclGetDate.y | |
parent | 743a4fee3d210f177179ff4212a36a2eb8213b9c (diff) | |
download | tcl-9b3dad29d72deaf01d61c8eeb18a238ca1854eb9.zip tcl-9b3dad29d72deaf01d61c8eeb18a238ca1854eb9.tar.gz tcl-9b3dad29d72deaf01d61c8eeb18a238ca1854eb9.tar.bz2 |
FreeScan: repair scanning date/time with TZ using '+', ex.: "31 Jan 14 23:59:59 +0100", additionally another TZ formats can be used now (token [zone] used instead of sequence '-' tNUMBER); test cases extended.
Closes http://core.tcl.tk/tcl/tktview?name=5019748c73
Cherry picked from fossil branch "sebres_clock_tz_fix", check-in [5f72c863f17145b4]
Diffstat (limited to 'generic/tclGetDate.y')
-rw-r--r-- | generic/tclGetDate.y | 23 |
1 files changed, 5 insertions, 18 deletions
diff --git a/generic/tclGetDate.y b/generic/tclGetDate.y index d6f9b11..e546938 100644 --- a/generic/tclGetDate.y +++ b/generic/tclGetDate.y @@ -195,29 +195,12 @@ time : tUNUMBER tMERIDIAN { yySeconds = 0; yyMeridian = $4; } - | tUNUMBER ':' tUNUMBER '-' tUNUMBER { - yyHour = $1; - yyMinutes = $3; - yyMeridian = MER24; - yyDSTmode = DSToff; - yyTimezone = ($5 % 100 + ($5 / 100) * 60); - ++yyHaveZone; - } | tUNUMBER ':' tUNUMBER ':' tUNUMBER o_merid { yyHour = $1; yyMinutes = $3; yySeconds = $5; yyMeridian = $6; } - | tUNUMBER ':' tUNUMBER ':' tUNUMBER '-' tUNUMBER { - yyHour = $1; - yyMinutes = $3; - yySeconds = $5; - yyMeridian = MER24; - yyDSTmode = DSToff; - yyTimezone = ($7 % 100 + ($7 / 100) * 60); - ++yyHaveZone; - } ; zone : tZONE tDST { @@ -232,6 +215,10 @@ zone : tZONE tDST { yyTimezone = $1; yyDSTmode = DSTon; } + | sign tUNUMBER { + yyTimezone = -$1*($2 % 100 + ($2 / 100) * 60); + yyDSTmode = DSToff; + } ; day : tDAY { @@ -659,7 +646,7 @@ TclDateerror( infoPtr->separatrix = "\n"; } -MODULE_SCOPE int +int ToSeconds( int Hours, int Minutes, |