Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / GMT, UTC & Co + ANSI C / 10 сообщений из 10, страница 1 из 1
27.09.2006, 15:16
    #34016065
Ixtiander06
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GMT, UTC & Co + ANSI C
Привет всем,

не бейте за простоту вопроса, но наверно отупел немного и не врубаюсь в элементарные вещи. Стоит ПС в Лондоне, сегодня 01.01.1970 01:00:00. Что выдают следующие вызовы функций:

time(& l);
mktime(gmttime(&l));
mktime(localtime(&l));

А теперь то же самое только в Москве. Для простоты задачи - до установки зимнего/летнего времени еще не додумались.

Вроде-бы ответ элементарный, но мой тест простенькой программы на ANSI C дает совершенно другие - неожиданные - результаты.

Заранее спасибо
...
Рейтинг: 0 / 0
27.09.2006, 15:46
    #34016198
gafudo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GMT, UTC & Co + ANSI C
А что выдает программа-то?

В Лондоне GMT+1 если с переходом на летнее и GMT+0 если без перехода.
В Москве сейчас должно быть GMT+4, если без перехода на летнее, то GMT+3.
Таким образом от Лондона мы всегда +3, если настройки летнего времени одинаковы.

localtime выдает местное время (т.е. с прибавлением), gmttime - всегда GMT и всегда без летнего сдвига. Что делает просто time, не помню, надо RTFM.
...
Рейтинг: 0 / 0
27.09.2006, 17:04
    #34016532
Ixtiander06
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GMT, UTC & Co + ANSI C
gafudoА что выдает программа-то?

localtime выдает местное время (т.е. с прибавлением), gmttime - всегда GMT и всегда без летнего сдвига. Что делает просто time, не помню, надо RTFM.

как раз time() меня и интересует. TFM пишет по этому поводу:
The time function returns the number of seconds elapsed since midnight (00:00:00), January 1, 1970, coordinated universal time, according to the system clock.

Проблема в том что я не понимаю в описании ссылку на UTC. По-моему это противоречит словам according to the system clock. там есть и пример в описании, пример я конечно сразу запустил, но проверять 10-значное число влом, а винды никак не поставить на 01.01.1970 :-(. поэтому возвращаюсь к своему вопросу:

Если мы в Лондоне и на календаре/часах 01.01.1970, 02:00:00, time(NULL) наверно возвращает 7200. Теперь то же самое в Москве. Я вижу два варианта: 7200 - если system clock - или 0 если UTC.

Теперь я вызываю в моей тестовой программке time(NULL) - выводится число Х. Меняю в винде часовой пояс на Лондон. Время, которое показывают виндовые часы автоматически уменьшается на 2 часа, а выводимое time(NULL) значение не меняется (ну то есть увеличивается на те секунды, которые я потратил на установку)???!!! Как это понимать? Eсли это локальное время (system clock!), то оно должно было бы уменьшиться на 7200. А если UTC, то непонятно, почему time(NULL) и mktime(localtime) выдают одно значение), которое отличается от mktime(gmttime(&l)) (причем все-равно, что я делаю с настройками часового пояса)
...
Рейтинг: 0 / 0
27.09.2006, 17:27
    #34016629
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GMT, UTC & Co + ANSI C
Ixtiander06Проблема в том что я не понимаю в описании ссылку на UTC. По-моему это противоречит словам according to the system clock.если бы комп был астрологом, он определял бы время по расположению звёзд. А пока - только по системным часам.
...
Рейтинг: 0 / 0
27.09.2006, 17:45
    #34016719
gafudo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GMT, UTC & Co + ANSI C
Я так понимаю time всегда возвращает секунды в GMT, а UTC = GMT вообще без временных сдвигов.
...
Рейтинг: 0 / 0
28.09.2006, 10:39
    #34017926
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GMT, UTC & Co + ANSI C
гмт - это, кажись, устаревшая система времени, на смену ей пришёл утц.
...
Рейтинг: 0 / 0
29.09.2006, 13:28
    #34022021
Sergey Philippov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GMT, UTC & Co + ANSI C
GMT == UTC

--wbr, ps
www.azs.ru
...
Рейтинг: 0 / 0
29.09.2006, 19:26
    #34023451
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GMT, UTC & Co + ANSI C
maXmoгмт - это, кажись, устаревшая система времени, на смену ей пришёл утц.Не совсем так :) С точки зрения измерения времени, на смену GMT пришел UT. А UTC всегда был с ними паралелльно :)
UT - Universal Time, с астрономической точки зрения.
GMT - Greenwich Mean Time, с астрономической точки зрения, но привязаная к собственно Гринвечевской обсерватории
UTC - Coordinated Universal Time - время считающееся по атомным часам а не по астрономическим.

Но так как функции time(), и ее подружки mktime(), gmtime(), localtime() etc работают на основе часов встроенных в компьютер, реальное GMT/UT/UTC ты не получишь никогда :)
...
Рейтинг: 0 / 0
29.09.2006, 22:35
    #34023622
maXmo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GMT, UTC & Co + ANSI C
в октябре 1884г гмт был принят в качестве международного стандарта времени.
1 января 1972г международным стандартом времени стал утц (существовал он с 1961г). В этом смысле утц заменил гмт. А так разница между ними небольшая.
...
Рейтинг: 0 / 0
02.10.2006, 13:22
    #34025854
Barlone
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
GMT, UTC & Co + ANSI C
Ixtiander06
как раз time() меня и интересует. TFM пишет по этому поводу:
The time function returns the number of seconds elapsed since midnight (00:00:00), January 1, 1970, coordinated universal time, according to the system clock.

Проблема в том что я не понимаю в описании ссылку на UTC. По-моему это противоречит словам according to the system clock. Почему противоречит ? системные часы как раз в UTC. А на часах которые показывает винда пользователю - местное время, к системным часам прибавляется смещение часового пояса. Если вы к результату time примените localtime, получите местное время, если gmtime - системное.
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / GMT, UTC & Co + ANSI C / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]