время, стой. раз-два.
Nov. 13th, 2009 07:42 pmЦитируем Posix:
===
Epoch
The time zero hours, zero minutes, zero seconds, on January 1, 1970
Coordinated Universal Time (UTC).
===
Смотрим в википедию - с 1970-го года в UTC было 24 вставных секунды (leap seconds).
Проверяем системные часы:
>>> a = (10*366+29*365)*86400
>>> a
1230768000
>>> import time
>>> time.gmtime(a)[0:6]
(2009, 1, 1, 0, 0, 0)
то есть никто не применял коррекцию по ним.
Первый вопрос - покажите мне хоть один юникс или одну Windows, чтобы честно реализовывала UTC, а не UT1 или UT2?
Второй вопрос - а нафига этот UTC нужен в практической машинной реальности?
===
Epoch
The time zero hours, zero minutes, zero seconds, on January 1, 1970
Coordinated Universal Time (UTC).
===
Смотрим в википедию - с 1970-го года в UTC было 24 вставных секунды (leap seconds).
Проверяем системные часы:
>>> a = (10*366+29*365)*86400
>>> a
1230768000
>>> import time
>>> time.gmtime(a)[0:6]
(2009, 1, 1, 0, 0, 0)
то есть никто не применял коррекцию по ним.
Первый вопрос - покажите мне хоть один юникс или одну Windows, чтобы честно реализовывала UTC, а не UT1 или UT2?
Второй вопрос - а нафига этот UTC нужен в практической машинной реальности?
no subject
Date: 2009-11-13 10:24 pm (UTC)Тестовый код:
<pre>
$ env TZ=UTC ./t
1230767999 -> 2008-12-31T23:59:59
1230768000 -> 2009-01-01T00:00:00
1230768022 -> 2009-01-01T00:00:22
1230768023 -> 2009-01-01T00:00:23
1230768024 -> 2009-01-01T00:00:24
$ env TZ=right/UTC ./t
1230767999 -> 2008-12-31T23:59:36
1230768000 -> 2008-12-31T23:59:37
1230768022 -> 2008-12-31T23:59:59
1230768023 -> 2008-12-31T23:59:60
1230768024 -> 2009-01-01T00:00:00
</pre>
Тестовый код:
<pre><code>
#include <stdio.h>
#include <time.h>
void
test(time_t t)
{
struct tm *tm;
tm = localtime(&t);
printf("%11lu -> %04d-%02d-%02dT%02d:%02d:%02d\n",
(unsigned long) t,
tm->tm_year+1900, tm->tm_mon+1, tm->tm_mday,
tm->tm_hour, tm->tm_min, tm->tm_sec);
}
int
main()
{
test(1230767999);
test(1230768000);
test(1230768022);
test(1230768023);
test(1230768024);
return 0;
}
</code></pre>
А что делает ntpd - вопрос интересный.