код страны(RU, GB, US...) через timezone в linux
От: semlanik Россия  
Дата: 24.02.10 12:08
Оценка:
Как в linux можно получить, назавание, а лучше код страны через верменную зону установленную на компьютере. в принципе это есть в kde но не не очень понятно откуда код растет.

24.02.10 23:19: Перенесено модератором из 'C/C++. Прикладные вопросы' — Кодт
Re: код страны(RU, GB, US...) через timezone в linux
От: Кодт Россия  
Дата: 24.02.10 12:57
Оценка:
Здравствуйте, semlanik, Вы писали:

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


А это в принципе возможно — по часовому поясу определить страну?
В Западной Европе несколько общих часовых поясов, разделяемых между многими странами; в США и Канаде тоже несколько общих...
Для справки: табличка имён TZ и к чему они относятся: http://www.timeanddate.com/library/abbreviations/timezones/ (не поручусь, что она исчерпывающая — просто нашёл первую попавшуюся гуглем).
Перекуём баги на фичи!
Re[2]: код страны(RU, GB, US...) через timezone в linux
От: semlanik Россия  
Дата: 24.02.10 15:47
Оценка:
Здравствуйте, Кодт, Вы писали:

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


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


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

К>В Западной Европе несколько общих часовых поясов, разделяемых между многими странами; в США и Канаде тоже несколько общих...
К>Для справки: табличка имён TZ и к чему они относятся: http://www.timeanddate.com/library/abbreviations/timezones/ (не поручусь, что она исчерпывающая — просто нашёл первую попавшуюся гуглем).
Есть файлик, /usr/share/zoneinfo/zone.tab в принципе сейчас дергаю от туда. просто на разных линухах скорее всего может быть в разных местах сам файлик. мне его достаточно. попутный вопрос а как можно из C/C++ дернуть название текущей часовой зоны в виде <region>/<city>. читать файлик /etc/timezone и т.д. не предлагать — вариант очень дистрибутиво зависим.
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 -- вопщем почитай маны может найдешь для ся чонить подходящее...
Re[3]: код страны(RU, GB, US...) через timezone в linux
От: zaufi Земля  
Дата: 24.02.10 20:28
Оценка:
Здравствуйте, semlanik, Вы писали:

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


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


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


ну отчегоже не понятно ... из kdepimlibs (там у них своя копия zone.tab
Re[4]: код страны(RU, GB, US...) через timezone в linux
От: semlanik Россия  
Дата: 24.02.10 21:12
Оценка:
Здравствуйте, zaufi, Вы писали:

Z>что касается моего gentoo то этот файлик принадлежит пакету timezone-data и если я все прально понимаю есть некая огранизация следящая за актуальностью данной базы (жинтушнеги просто берут его оттуда... homepage этого пакета указан как ftp://elsie.nci.nih.gov/pub/) -- думается мне так поступают все дистромэйкеры (по кр мере в дистрах после 2006 года (как минимум))

В моей генту оно тоже лежит на месте ) Так что наверно оно всеже стандартизировано, в отличии от файлика который задает эту самую зону )

Z>в POSIX вообще есть проблема с таймзонным API (выставление таймзоны влияет на все функции локального времени во всех запущенных threads)

Z>последний раз я с таймзонами плотно сталкивался какраз в 2006 -- и тогда мы пользовали boost::date_time для временных расчетов с разными таймзонами... бустеры также маинтэйнят файлик под названием date_time_zonespec.csv (скорее всего он у них получается генерением из zone.tab) который используется классом boost::local_time::tz_database -- вопщем почитай маны может найдешь для ся чонить подходящее...
Буста нет, и не будет ) так что не вариант
Re: код страны(RU, GB, US...) через timezone в linux
От: Sheridan Россия  
Дата: 24.02.10 22:50
Оценка:
Приветствую, semlanik, вы писали:

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


book ~ # date +%Z
MSK


Оно?
avalon 1.0rc3 rev 315, zlib 1.2.3
build date: 15.02.2010 00:26:03 MSK +03:00
Qt 4.6.1
Matrix has you...
Re[5]: код страны(RU, GB, US...) через timezone в linux
От: zaufi Земля  
Дата: 25.02.10 04:10
Оценка:
Здравствуйте, semlanik, Вы писали:

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


Z>>что касается моего gentoo то этот файлик принадлежит пакету timezone-data и если я все прально понимаю есть некая огранизация следящая за актуальностью данной базы (жинтушнеги просто берут его оттуда... homepage этого пакета указан как ftp://elsie.nci.nih.gov/pub/) -- думается мне так поступают все дистромэйкеры (по кр мере в дистрах после 2006 года (как минимум))

S>В моей генту оно тоже лежит на месте ) Так что наверно оно всеже стандартизировано, в отличии от файлика который задает эту самую зону )

это ты о чем? о /etc/timezone? -- дык это не единственный способ задать на компе таймзону... (да тебе и пофиг должно быть каким именно образом она установлена... главное что localtime() и прочие все правильно воспринимают)

zone.tab насколько я понял худо-бедно "стандартизирован"...
Re[6]: код страны(RU, GB, US...) через timezone в linux
От: semlanik Россия  
Дата: 25.02.10 07:25
Оценка:
Здравствуйте, zaufi, Вы писали:

Z>это ты о чем? о /etc/timezone? -- дык это не единственный способ задать на компе таймзону... (да тебе и пофиг должно быть каким именно образом она установлена... главное что localtime() и прочие все правильно воспринимают)


Z>zone.tab насколько я понял худо-бедно "стандартизирован"...


zone.tab имеет вполне конкретный формат. в общем то задача изначально стояла выдать ISO код страны по таймзоне. вроде работает и работает. ничего лучше придумать не могу )
Re[2]: код страны(RU, GB, US...) через timezone в linux
От: semlanik Россия  
Дата: 25.02.10 07:26
Оценка:
Здравствуйте, Sheridan, Вы писали:

S>
book ~ # date +%Z
S>MSK
S>


S>Оно?


Неа, не оно ) в общем-то наверно задача решена. спасибо!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.