Re[3]: код страны(RU, GB, US...) через timezone в linux
От: zaufi Земля  
Дата: 24.02.10 20:25
Оценка:
Здравствуйте, semlanik, Вы писали:

S>Здравствуйте, Кодт, Вы писали:


К>>Здравствуйте, semlanik, Вы писали:


S>>>Как в linux можно получить, назавание, а лучше код страны через верменную зону установленную на компьютере. в принципе это есть в kde но не не очень понятно откуда код растет.


К>>А это в принципе возможно — по часовому поясу определить страну?

К>>В Западной Европе несколько общих часовых поясов, разделяемых между многими странами; в США и Канаде тоже несколько общих...
К>>Для справки: табличка имён TZ и к чему они относятся: http://www.timeanddate.com/library/abbreviations/timezones/ (не поручусь, что она исчерпывающая — просто нашёл первую попавшуюся гуглем).
S>Есть файлик, /usr/share/zoneinfo/zone.tab в принципе сейчас дергаю от туда. просто на разных линухах скорее всего может быть в разных местах сам файлик.
скорее всего файлик лежит в правильном месте (с точки зрения FHS) и врядли будет лежать гдето еще...
другое дело что формат этого файла (а возможно и название) может отличаться в современных дистрах от того который был до принятия "длинного" стандарта именования таймзон (не спрашивай когда это было, помню только году в 2006 ныне покойный Сан "перестандартизировал" свою жабу начав депрекэйтить 3х буквенные названия)
что касается моего gentoo то этот файлик принадлежит пакету timezone-data и если я все прально понимаю есть некая огранизация следящая за актуальностью данной базы (жинтушнеги просто берут его оттуда... homepage этого пакета указан как ftp://elsie.nci.nih.gov/pub/) -- думается мне так поступают все дистромэйкеры (по кр мере в дистрах после 2006 года (как минимум))

S>мне его достаточно. попутный вопрос а как можно из C/C++ дернуть название текущей часовой зоны в виде <region>/<city>. читать файлик /etc/timezone и т.д. не предлагать — вариант очень дистрибутиво зависим.

в POSIX вообще есть проблема с таймзонным API (выставление таймзоны влияет на все функции локального времени во всех запущенных threads)
последний раз я с таймзонами плотно сталкивался какраз в 2006 -- и тогда мы пользовали boost::date_time для временных расчетов с разными таймзонами... бустеры также маинтэйнят файлик под названием date_time_zonespec.csv (скорее всего он у них получается генерением из zone.tab) который используется классом boost::local_time::tz_database -- вопщем почитай маны может найдешь для ся чонить подходящее...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.