Rating@Mail.ru
IPB
Etersoft - from Windows to Linux
Etersoft
решения для перехода
с Windows на Linux
Дружественные сайты: alv.me и Rus-Linux.net

Здравствуйте, гость ( Вход | Регистрация ) Поиск · 

> Прочитайте перед тем, как задать вопрос.

"Не каждый вопрос заслуживает ответа."
Сайрус

"Можно ответить на любой вопрос, если вопрос задан правильно."
Платон

"Если хочешь быть известным, задавай вопросы!"
Еврейская пословица

1. Необходимо помнить
, в помощь начинающему!
2. Поищите ответ здесь

3. Выбор дистрибутива, а также "чего поставить на серверок?"
Темы про выбор дистрибутива ЗАКРЫВАЕМ!
4. Указывайте, пожалуйста, Ваш дистрибутив.

 
Reply to this topic Start new topic
> Как в программе изменить часовой пояс?
MiK13
bookmark
gyfbbdvkffmrljmmmwd
Oct 12 2017, в 17:56
Сообщение #1


Знаток линукса
Иконка группы

Сообщений: 518

Вставить имя   :   Цитата

ОС: Windows XP
Город: Minsk

Группа: Участники

Автор темы
АРМ, который мы разрабатываем, может быть установлен за пределами РБ, поэтому возникла необходимость ввести установку часового пояса. Значение смещения (в часах) задаётся в АРМе в специальном поле.
Я попробовал это сделать просто копируя файл /usr/share/zoneinfo/Etc/GMTofs в файл /etc/localtime.
Но в системе время при этом меняется, а вот на localtime, вызываемое в программе это действует только один раз. Хотя dpkg-reconfigure tzdata меняет всегда.
Может быть нужно выдать какой-нибудь дополнительный запрос? Или dpkg-reconfigure tzdata можно выдать как-то в пакетном режиме, чтобы он поменял часовой пояс?
Go to the top of the page
 
+Quote Post
Bizdelnick
bookmark
gyfbbdvkffmrljmmmwd
Oct 12 2017, в 18:23
Сообщение #2


grammatikführer
Иконка группы

Сообщений: 12802

Вставить имя   :   Цитата

ОС: Debian GNU/Linux
Город: Санкт-Петербург

Группа: Модераторы разделов

Ну так посмотрите скрипт /var/lib/dpkg/info/tzdata.config и сделайте, как там.


--------------------
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
нюанс
приемлемо
проблема
пробовать
трафик
Go to the top of the page
 
+Quote Post
MiK13
bookmark
gyfbbdvkffmrljmmmwd
Oct 12 2017, в 19:40
Сообщение #3


Знаток линукса
Иконка группы

Сообщений: 518

Вставить имя   :   Цитата

ОС: Windows XP
Город: Minsk

Группа: Участники

Автор темы
Цитата(Bizdelnick @ Oct 12 2017, в 18:23) *
Ну так посмотрите скрипт /var/lib/dpkg/info/tzdata.config и сделайте, как там.

Спасибо. Попытаюсь разобраться.
Хотя, на мой взгляд, вызов system("dpkg-reconfigure -fgnome tzdata&"); (по специальной кнопке или комбинации клавиш) будет корректнее.
Go to the top of the page
 
+Quote Post
Bizdelnick
bookmark
gyfbbdvkffmrljmmmwd
Oct 12 2017, в 20:23
Сообщение #4


grammatikführer
Иконка группы

Сообщений: 12802

Вставить имя   :   Цитата

ОС: Debian GNU/Linux
Город: Санкт-Петербург

Группа: Модераторы разделов

Тогда уж лучше использовать debconf-set-selections.


--------------------
Пишите правильно:
в консоли
вкупе (с чем-либо)
в общем
вообще
в течение (часа)
команда
новичок
нюанс
приемлемо
проблема
пробовать
трафик
Go to the top of the page
 
+Quote Post
s.xbatob
bookmark
gyfbbdvkffmrljmmmwd
Oct 12 2017, в 21:41
Сообщение #5


Бывалый
Иконка группы

Сообщений: 401

Вставить имя   :   Цитата

ОС: RfRemix
Город: Санкт-Петербург

Группа: Участники

тут всё не так просто. Вообще-то просто, но есть подводные камни.
Главным тут является файл /etc/localtime, Только libc его кеширует (а может ещё что делает), но его динамическое изменение уже не сработает.
Ещё есть достаточно способов договорится про зону, но всё равно: данные кешируются и не будут применены к уже работающим программам.
Но если вы с запущенными программами по зонам не скачете, то вас это волновать не должно.

Go to the top of the page
 
+Quote Post
MiK13
bookmark
gyfbbdvkffmrljmmmwd
Oct 12 2017, в 22:08
Сообщение #6


Знаток линукса
Иконка группы

Сообщений: 518

Вставить имя   :   Цитата

ОС: Windows XP
Город: Minsk

Группа: Участники

Автор темы
Цитата(s.xbatob @ Oct 12 2017, в 21:41) *
Главным тут является файл /etc/localtime,
Это я понял уже давно. Заменяю этот файл и тут же date показывает другие значения.
Цитата(s.xbatob @ Oct 12 2017, в 21:41) *
Только libc его кеширует (а может ещё что делает), но его динамическое изменение уже не сработает.
Понятно, почему его замена не влияет на данные в программе. Хотя не понятно почему первая замена меняет временную зону.
Цитата(s.xbatob @ Oct 12 2017, в 21:41) *
Но если вы с запущенными программами по зонам не скачете, то вас это волновать не должно.
Я вообще не вижу смысла вставлять в рабочую программу установку часового пояса. Установили АРМ -- и настроили часовой пояс в СИСТЕМЕ. Издало правительство постановление, что "теперь часовой пояс в этом регионе будет другим" -- пришёл системный администратор, вошёл как root, выдал dpkg-reconfigure tzdata или, ещё лучше, заменил файл /etc/localtime на новый и опять система продолжила работать.
Но, когда разрабатывали программу, почему-то решили иначе.
Go to the top of the page
 
+Quote Post
MiK13
bookmark
gyfbbdvkffmrljmmmwd
Oct 13 2017, в 10:12
Сообщение #7


Знаток линукса
Иконка группы

Сообщений: 518

Вставить имя   :   Цитата

ОС: Windows XP
Город: Minsk

Группа: Участники

Автор темы
Цитата(Bizdelnick @ Oct 12 2017, в 20:23) *
Тогда уж лучше использовать debconf-set-selections.

Почитал что это такое. Сначала подумал, что это будет наилучшим вариантом.
Но попробовал... первый раз команда echo tzdata tzdata/Zones/Etc select GMT+2 | debconf-set-selections прошла, часы (вверху экрана) "прыгнули" с 10 часов на 5 часов. (кстати, удивило, что часовой пояс GMT+02 -- это смещении -0200).
Но вот дальше эта команда работать отказалась. То есть никаких сообщений, но время не меняется.

В общем, показал вчера начальнику, что часовой пояс меняется, но не сразу -- изменение времени действует после перезапуска АРМа.
Но не возражал.
Go to the top of the page
 
+Quote Post

 Reply to this topic Start new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 19th October 2017 - в 04:37




Rating@Mail.ru