Здравствуйте, 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, задумался.