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
0Jan  1 03:00:00 MSK 1970Jan  1 03:00:00 MSK 1970
20111296000000Jan 26 03:00:00 MSK 2011Jan 26 03:00:00 MSK 2011
20111310000000Jul  7 04:53:20 MSD 2011Jul  7 04:53:20 MSK 2011
20111325000000Dec 27 18:33:20 MSK 2011Dec 27 19:33:20 MSK 2011
1319929199Oct 30 02:59:59 MSD 2011Oct 30 02:59:59 MSK 2011
1319929200Oct 30 02:00:00 MSK 2011Oct 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 6tzdata2011h2011-07-01
Arch Linuxtzdata2011h-1<2011-07-08
CentOS/RHEL 4tzdata2011h-2.el42011-08-29
CentOS/RHEL 5tzdata2011h-1.el52011-06-28
Debian stable (squeeze)tzdata2011h-0squeeze12011-08-13
openSUSE 11.4timezone2011i-2.2.12011-09-04
Ubuntu hardytzdata2011j~repack-0ubuntu0.8.042011-09-16
Ubuntu lucidtzdata2011j-0ubuntu0.10.042011-09-16
Ubuntu nattytzdata2011j-0ubuntu0.11.042011-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- ..


Source: https://habr.com/ru/post/J130363/


All Articles