Задача — сконвертировать в time_t и вернуть как UTC. С mktime(3C) разобрался, непонятно только, что делать с врееменной зоной (которая в данном примере — MSD) — как распарсить это значение?...
Здравствуйте, Scott Tiger, Вы писали:
ST>Привет.
ST>Есть строка с датой следующего вида:
ST>Tue Jun 13 12:30:55 MSD 2006,
ST>т.е. формат %a %b %e %T %Z %Y
ST>Задача — сконвертировать в time_t и вернуть как UTC. С mktime(3C) разобрался, непонятно только, что делать с врееменной зоной (которая в данном примере — MSD) — как распарсить это значение?...
ST>C, POSIX, но можно и со спецификой Solaris (9).
Здравствуйте, Scott Tiger, Вы писали:
ST>Привет.
ST>Есть строка с датой следующего вида:
ST>Tue Jun 13 12:30:55 MSD 2006,
ST>т.е. формат %a %b %e %T %Z %Y
ST>Задача — сконвертировать в time_t и вернуть как UTC. С mktime(3C) разобрался, непонятно только, что делать с врееменной зоной (которая в данном примере — MSD) — как распарсить это значение?...
ST>C, POSIX, но можно и со спецификой Solaris
man strptime. gettime немного не то.
В теории практика не отличается от теории, но на практике — отличается
Здравствуйте, nau, Вы писали:
nau>Здравствуйте, Scott Tiger, Вы писали:
ST>>Привет.
ST>>Есть строка с датой следующего вида:
ST>>Tue Jun 13 12:30:55 MSD 2006,
ST>>т.е. формат %a %b %e %T %Z %Y
ST>>Задача — сконвертировать в time_t и вернуть как UTC. С mktime(3C) разобрался, непонятно только, что делать с врееменной зоной (которая в данном примере — MSD) — как распарсить это значение?...
ST>>C, POSIX, но можно и со спецификой Solaris nau>man strptime. gettime немного не то.
Спасибо. Вот только со strptime выяснилась неприятная особенность её неработоспособности (год и час уходят в 0) в случае, если $TZ — это не то, что %Z в строке. Т.е., мой пример работает нормально, только если $TZ=Europe/Moscow. Аналогично, если в строке поставить GMT, то будет работать только с $TZ=GMT, а с московской зоной всё те же нули. Нашёл сообщение в comp.unix.solaris за 1998 год с такой же проблемой в Solaris 2.6, задумался.
Здравствуйте, nau, Вы писали:
nau>Здравствуйте, Scott Tiger, Вы писали:
ST>>Привет.
ST>>Есть строка с датой следующего вида:
ST>>Tue Jun 13 12:30:55 MSD 2006,
ST>>т.е. формат %a %b %e %T %Z %Y
ST>>Задача — сконвертировать в time_t и вернуть как UTC. С mktime(3C) разобрался, непонятно только, что делать с врееменной зоной (которая в данном примере — MSD) — как распарсить это значение?...
ST>>C, POSIX, но можно и со спецификой Solaris nau>man strptime. gettime немного не то.
Гы. Оказывается, строчка, выводимая по формату %Z — неуникальная, есть зоны с разным смещением относительно UTC, но с одинаковыми аббревиатурами...