php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #63777 DateTime obj in Dec 2012 in Australia/South TZ reports 'CST' time zone abbrev
Submitted: 2012-12-14 23:42 UTC Modified: 2013-01-07 20:23 UTC
Votes:1
Avg. Score:5.0 ± 0.0
Reproduced:1 of 1 (100.0%)
Same Version:0 (0.0%)
Same OS:1 (100.0%)
From: kavi at postpro dot net Assigned:
Status: Not a bug Package: Date/time related
PHP Version: Irrelevant OS: OS X, CentOS, Debian
Private report: No CVE-ID: None
View Add Comment Developer Edit
Welcome! If you don't have a Git account, you can't do anything here.
You can add a comment by following this link or if you reported this bug, you can edit this bug over here.
(description)
Block user comment
Status: Assign to:
Package:
Bug Type:
Summary:
From: kavi at postpro dot net
New email:
PHP Version: OS:

 

 [2012-12-14 23:42 UTC] kavi at postpro dot net
Description:
------------
Tried this on 5.3.3, 5.3.6 and 5.3.10, the latest available from the various OS vendors we have.  I have not yet successfully compiled 5.4.x to test there.

This occurs with the 2012.10 tzdata installed and verified with phpinfo().


Test script:
---------------
$date = new DateTime('now', new DateTimezone('Australia/South'));
echo $date->format('Y-m-d H:i:s T');

Expected result:
----------------
2012-12-15 10:10:13 ACDT

Actual result:
--------------
2012-12-15 10:10:13 CST

Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2012-12-14 23:43 UTC] kavi at postpro dot net
See #50276 for a tangentially related bug about the Australian timezone abbreviations.
 [2012-12-15 04:17 UTC] sixd@php.net
Testcase confirmed with 5.3, 5.4, 5.5 from git. All use Olson 2012.10
 [2012-12-15 04:38 UTC] rasmus@php.net
-Status: Open +Status: Feedback
 [2012-12-15 04:38 UTC] rasmus@php.net
Two things confuse me about this bug report. Surely it is summer in Australia 
right now, so why would you expect ACDT? And second, Olson has never used the 'A' 
prefix and as far as I know most places don't. There is a long discussion on this 
in the Olson australasia file. I'll leave this as an exercise for the interested 
to look up. If you go to Google and search for "time in Adelaide" you get a CST 
time just like PHP provides.
 [2012-12-17 01:35 UTC] aharvey@php.net
Unfortunately, as a Western Australian who's suffered through our state government's various flip-flops on daylight saving, I'm much more familiar with this than I want to be — the Olson database is technically correct here, as every state legislates or proclaims daylight saving time as "summer time", so the S part of the CST abbreviation is correct. Beyond that, I think that the Olson notes and related mailing list posts lay out the case for not prefixing the abbreviations reasonably well.

Realistically, any change to this would need to happen upstream anyway — I doubt we want to start patching tzdata to differ from the mainline that almost everyone else deploys.
 [2012-12-17 01:35 UTC] aharvey@php.net
-Status: Feedback +Status: Not a bug
 [2013-01-07 19:07 UTC] kavi at postpro dot net
Forget the prefix (ACDT vs CDT) portion.  Mirroring Olson is good.

If it's summer time in Australia, what does the 'D' in Australian CDT stand for?

The reason I bring this up is because I've researched online and there are a number of timekeeping and other sites which are in disagreement.

From http://en.wikipedia.org/wiki/Time_in_Australia

"The main DST zones are the following:

    (Australian) Central Daylight Time (CDT or ACDT) – UTC+10:30, in South Australia
    (Australian) Eastern Daylight Time (EDT or AEDT) – UTC+11, in New South Wales, the A.C.T., Victoria, and Tasmania.

[...]

Beginning in 2008, the start of DST in these states and in South Australia occurs on the first Sunday in October, and its end is on the first Sunday in April."

According to this, DST-observing zones in Australia are currently observing DST during the Australian summer (whether it's called summer time or not) - so unless I have the meanings of 'S' and 'D' in CST/CDT incorrect, or I've otherwise reasoned incorrectly, this is still a bug.

According to Wolfram Alpha (Checked just now, 7 January 2013) it is CST right now: https://www.wolframalpha.com/input/?i=current+time+in+Adelaide

According to timeanddate.com (on 7 January 2013) it is CDT right now: http://www.timeanddate.com/worldclock/city.html?n=5

This does need attention, even if only to verify that it is truly not a bug.
 [2013-01-07 19:18 UTC] rasmus@php.net
Ok, it is truly not a bug. According to Olson it is CST in Adelaide now. Google, 
Wolfram and PHP are all in agreement here. Even that timeanddate.com page states 
right on it that:

DST ends on Sunday, April 7, 2013 at 3:00 AM local daylight time
DST starts on Sunday, October 6, 2013 at 2:00 AM local standard time

So surely they should be showing DST right now. The 'S' is supposed to standard 
for "Standard" but people tend to use "Summer" as well.
 [2013-01-07 19:24 UTC] kavi at postpro dot net
As you point out from the timeanddate.com site, DST in Australia/South (Adelaide being the city I use for inquiry) ENDS April 2013, which means it started in October 2012.  So it's currently daylight (not standard) time, is what I'm saying.  It's either me misunderstanding the abbreviation, a bug (in Olson?) or a bug in my coffee consumption in *my* current time zone, because I don't understand.

If it's something obvious I apologize for taking folks' time.
 [2013-01-07 19:32 UTC] derick@php.net
Olson uses CST the year round:

derick@whisky:~ $ zdump -v -c 2012,2014 Australia/Adelaide
Australia/Adelaide  -9223372036854775808 = NULL
Australia/Adelaide  -9223372036854689408 = NULL
Australia/Adelaide  Sat Mar 31 16:29:59 2012 UTC = Sun Apr  1 02:59:59 2012 CST isdst=1 gmtoff=37800
Australia/Adelaide  Sat Mar 31 16:30:00 2012 UTC = Sun Apr  1 02:00:00 2012 CST isdst=0 gmtoff=34200
Australia/Adelaide  Sat Oct  6 16:29:59 2012 UTC = Sun Oct  7 01:59:59 2012 CST isdst=0 gmtoff=34200
Australia/Adelaide  Sat Oct  6 16:30:00 2012 UTC = Sun Oct  7 03:00:00 2012 CST isdst=1 gmtoff=37800
Australia/Adelaide  Sat Apr  6 16:29:59 2013 UTC = Sun Apr  7 02:59:59 2013 CST isdst=1 gmtoff=37800
Australia/Adelaide  Sat Apr  6 16:30:00 2013 UTC = Sun Apr  7 02:00:00 2013 CST isdst=0 gmtoff=34200
Australia/Adelaide  Sat Oct  5 16:29:59 2013 UTC = Sun Oct  6 01:59:59 2013 CST isdst=0 gmtoff=34200
Australia/Adelaide  Sat Oct  5 16:30:00 2013 UTC = Sun Oct  6 03:00:00 2013 CST isdst=1 gmtoff=37800
Australia/Adelaide  9223372036854689407 = NULL
Australia/Adelaide  9223372036854775807 = NULL

The S stands for both Standard and Summer (sadly).
 [2013-01-07 19:33 UTC] kavi at postpro dot net
Here's an interesting one which states CST for both summer and winter: http://www.travelmath.com/time-zone/Australia/Adelaide

Another site claiming DST is in effect: http://www.timezoneconverter.com/cgi-bin/zoneinfo.tzc?tz=Australia/Adelaide

So, my main question still being, if 'CST' is 'Central Summer (aka daylight savings) Time,' then what is 'CDT?'

I'm happy to try to figure out where to take my irritating questions directly to IANA, BTW, if this is a) indeed a problem and b) solely an upstream problem as it appears to be.
 [2013-01-07 19:34 UTC] kavi at postpro dot net
@derick: Wow. Well, that explains it.

Thanks all.
 [2013-01-07 20:23 UTC] derick@php.net
There is no CDT in use in Australia
 
PHP Copyright © 2001-2022 The PHP Group
All rights reserved.
Last updated: Fri Aug 12 17:05:45 2022 UTC