MSDタイムゾーンのMSKへの再配置-新しいY2Kローカルスケール

ロシアでは、2011年以降、夏時間から冬時間への移行がキャンセルされたことを、誰もが少なくとも一度は聞いたことがあるでしょう。 これは、私たち一人一人、および複雑なシステムの多数のサーバーの管理者、および1台のコンピューターと携帯電話を持っている一般ユーザーをどのように脅かしますか? 2011年10月29〜30日の夜はどうなりますか?ちなみに、これはたった2週間先です。



2011年6月3日のロシア連邦の新しい連邦法N107-「時間の計算について」

これらの変化は私たちを脅かすものであり、これから何を壊すことができますか?



正確に、そしていつ変更されるのでしょうか?



Europe/Moscow



: MSD = UTC+4 MSK = UTC+3. timezone , MSK UTC+4. , , , «» — .. Europe/Moscow.



UNIX timestamp — , , 1970-01-01 00:00:00 UTC. .



Timestamp
0 Jan  1 03:00:00 MSK 1970



Jan  1 03:00:00 MSK 1970



2011 1296000000 Jan 26 03:00:00 MSK 2011



Jan 26 03:00:00 MSK 2011



2011 1310000000 Jul  7 04:53:20 MSD 2011



Jul  7 04:53:20 MSK 2011



2011 1325000000 Dec 27 18:33:20 MSK 2011



Dec 27 19:33:20 MSK 2011



1319929199 Oct 30 02:59:59 MSD 2011



Oct 30 02:59:59 MSK 2011



1319929200 Oct 30 02:00:00 MSK 2011



Oct 30 03:00:00 MSK 2011





, , Y2k 1319929199 1319929200- — , .





(.. , ) TZ database, elsie.nci.nih.gov/pub



: 4 — , — .



TZ database : 2011-06-06, 2011h 2011-06-15.



, : tzdata , 2011h (.. 2011i, 2011j ..) — .



timezone?



, .



, , timezone Europe/Moscow — , -- UTC — .



:



ntp-, — , ?



, : ntp- UNIX timestamp, , , . , — , ntp- , , , : ntp, « » ntp «» . «» timezone.



- UTC, — GMT?



, : UTC (Universal Time, Coordinated) (~ 1960-) — , , , .



— GMT UTC — GMT «» . GMT UTC ~0.9 . , 50 , « » GMT.



, - ?



, , , .





, — , , : 2011-10-30 01:59 1 1 . / 02:00 — , , , timezone . 03:00 — , .



Linux



Linux timezones, /usr/share/zoneinfo



. — , , :

ALT Linux Platform 6 tzdata 2011h 2011-07-01
Arch Linux tzdata 2011h-1 <2011-07-08
CentOS/RHEL 4 tzdata 2011h-2.el4 2011-08-29
CentOS/RHEL 5 tzdata 2011h-1.el5 2011-06-28
Debian stable (squeeze) tzdata 2011h-0squeeze1 2011-08-13
openSUSE 11.4 timezone 2011i-2.2.1 2011-09-04
Ubuntu hardy tzdata 2011j~repack-0ubuntu0.8.04 2011-09-16
Ubuntu lucid tzdata 2011j-0ubuntu0.10.04 2011-09-16
Ubuntu natty tzdata 2011j-0ubuntu0.11.04 2011-09-15


: :

#!/bin/sh -ef
S1=$(LC_ALL=C TZ=Europe/Moscow date -d @1314567890)
[ "$S1" = 'Mon Aug 29 01:44:50 MSK 2011' ] || (echo FAIL1; exit 1)
S2=$(LC_ALL=C TZ=Europe/Moscow date -d @1324567890)
[ "$S2" = 'Thu Dec 22 19:31:30 MSK 2011' ] || (echo FAIL2; exit 2)
echo OK

      
      





-, OK exit status — . : , , - - - timezones ; — , - .



FreeBSD



head stable FreeBSD 8 2011-06-28.



: - , :

#!/bin/sh -ef
S1=$(LC_ALL=C TZ=Europe/Moscow date -r 1314567890)
[ "$S1" = 'Mon Aug 29 01:44:50 MSK 2011' ] || (echo FAIL1; exit 1)
S2=$(LC_ALL=C TZ=Europe/Moscow date -r 1324567890)
[ "$S2" = 'Thu Dec 22 19:31:30 MSK 2011' ] || (echo FAIL2; exit 2)
echo OK

      
      





Mac OS X. , - , .



Solaris



Timezone 2011h :

, , patchadd



, , tzreload



.



7055084.



Windows



Windows 2011 — 2570791 ( pokryshkin). . :

.



, 914387.

( ComputerPers)



Windows- « , , » roman_tik.



Java



Java, , timezones - $JAVA_HOME/lib/zi



— ( ) .



«» Oracle Java SE 2011h, 1.3.40, 2011-06-29.



: TestMSD.java :

import java.util.*;
import java.text.DateFormat;

public class TestMSD {
    public static void main(String[] args) {
        Calendar c = Calendar.getInstance(TimeZone.getTimeZone("Europe/Moscow"));
        DateFormat df = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL, Locale.US);
        df.setCalendar(c);

        c.setTimeInMillis(1314567890L * 1000L);
        if (!df.format(c.getTime()).equals("Monday, August 29, 2011 1:44:50 AM MSK")) {
            System.out.println("FAIL1");
            System.exit(1);
        }

        c.setTimeInMillis(1324567890L * 1000L);
        if (!df.format(c.getTime()).equals("Thursday, December 22, 2011 7:31:30 PM MSK")) {
            System.out.println("FAIL2");
            System.exit(2);
        }

        System.out.println("OK");
        System.exit(0);
    }
}

      
      





javac TestMSD.java



, java TestMSD



. — OK stdout exit status = 0, .



Android



Android- /etc/timezones.db



, java- java. /usr/share/zoneinfo .



, , , :



: 2011-2012 , «Moscow Standard Time» ; «» :





Maemo



Maemo , GNU/Linux — .. /usr/share/zoneinfo



, tzdata .. ( wholeman):

: busybox' date -d 12221931.30 +%s



1324567890



.



Symbian



, , .. - «» :

: Android, « → → », - 2011 , «GMT +3.00 »:



— , .






, , , : , ( ), , — , , : Windows, Mac OS X / Classic, / Symbian, Android, iOS, MeeGo, Windows Mobile/Phone 7, Nabaztag, Playstation/XBox, Perl, PHP, Ruby, Python, SQL- ..



All Articles