Предыдущий пост Поделиться Следующий пост
Местное время
Рыжий
shoorick
Пара наблюдений относящихся к встроенной перловой функции localtime:

Код на перле

  1. Заданное в секундах с начала эпохи время вполне может быть отрицательным — то есть можно работать с датами до 1 января 1970 года.

  2. Разница между местным временем, возвращаемым функцией localtime и временем по Гринвичу (функция gmtime) непостоянна. Само по себе это не удивительно — существует же кое-гд до сих пор летнее время. Удивительнее другое: разница эта, если залезть поглубже, иногда не является целым числом часов — можно проверить, например, как менялась она начиная с 1900 года:


#!/usr/bin/perl

use POSIX qw( strftime );

my $SEC_PER_DAY = 24*60*60;
my $old_time = '';

for my $day ( -25567 .. 0 ) 
    my @moment = localtime( $day * $SEC_PER_DAY );
    my $time   = strftime '%X', @moment; # HH:MM:SS
    if ( $old_time ne $time ) 
        printf
            "%s %s\n",
            strftime( '%x', @moment ),
            $time;
        $old_time = $time;
    


Результат неожиданный:

  • 01.01.1900 04:02:33

  • 03.07.1916 03:45:05

  • 16.07.1919 04:00:00

  • 21.06.1930 05:00:00


и не всегда понятный: если 04:02:33 ещё как-то можно объяснить — это время соответствует долготе 60,6375° в. д. — пара километров от нынешнего центра Екатеринбурга, то 03:45:05 откуда? Ближайший крупный город с долготой 56,2708° в. д. — Пермь. Что-то я сильно сомневаюсь, что в дореволюціонномъ Челябинске действовало пермское время.

http://shoorick.ru/2017/02/07/localtime/

Записи из этого журнала по тегу «perl»

  • Четверть гигабайта

    Чего только нет в редакторе Komodo Edit! По сравнению с могучей Komodo IDE нет отладчика, нет профилировщика, нет модульного тестирования,…

  • Statt zu schlafen

    Учёт домашних доходов с расходами — сплошное расстройство. Теперь вот вместо того, чтоб спать, пытаюсь вспомнить, что же умею делать за деньги,…

  • Косые чёрточки

    Перловый программист, пользующийся заодно седом и вимом, видит логотип «Дождя»: — Регэксп, — думает программист. Надо больше отдыхать.…


  • 1
О как!
Сейчас поэкспериментирую. Интересно )))

  • 1
?

Log in