Изменить часовой пояс Linux. Как поменять дату в Android устройстве, а также время и часовой пояс

То, что я пытаюсь достичь, - используя значения int, изменить время и время UTC и получить время от разных часовых поясов.

Предполагаемые значения Int:

0 = UTC+00:00 1 = UTC+01:00 ...

По логике, он должен быть чем-то вроде:

Int timezoneInt = 1; var newDate = DateTime.UtcNow.AddMinutes(timezoneInt*60);

Но проблема в том, что это не включает летнее/зимнее время.

Например:

Мое местоположение находится в UTC + 02: 00, а время - 09:20. Мне нужно получить UTC + 00: 00 (который равен DateTime.UtcNow и должен быть (?) 07:20 AM). Из-за летнего времени, прямо сейчас.UtcNow - 06:20, поэтому я не могу просто умножить 60 минут на значение int, мне также нужно включить коэффициент летнего времени как-то.

Как я догадался сделать это, или что я пропал без вести или понял?

EDIT: был отмечен как дубликат. Ну, я не вижу ничего, что поможет изменить время, используя значение int в качестве часового пояса.

2 ответов

Корректировки для перехода на летнее время требуют обширной базы данных часовых поясов, которая также записывает даты и время, когда эта зона изменяется на летнее время, и что такое новое смещение UTC.

Базы данных DST нелегко построить (или даже использовать в некоторых случаях), и их необходимо вручную исследовать и поддерживать, поскольку они являются политическими, а не техническими - страны могут менять свои летние сроки, как они пожелают, и поэтому базе данных также необходимо записывать исторические даты.

NET Framework имеет встроенный класс TimeZoneInfo (который устаревает класс TimeZone), который использует базу данных часового пояса, встроенную в Windows, или любую другую ОС хоста. База данных часовых поясов Windows использует полные имена для идентификации зон, тогда как Linux и tzdb используют идентификаторы, такие как America/New_York .

Обратите внимание, что в целом вы никогда не должны выполнять эти вычисления самостоятельно, так как всегда есть множество краев, о которых нужно знать. Просто используйте DateTimeOffset .

Кроме того, не существует сопоставления 1:1 между смещениями UTC и часовыми поясами: разные временные интервалы используют одно и то же смещение UTC, но имеют разные правила перехода на летнее время (например, британский часовой пояс использует UTC + 0 в качестве своего обычного смещения UTC, но UTC + 1 летом, но если вы видите "UTC + 1", который может быть либо британской зоной летом, либо западноафриканским часовым поясом, например, Алжиром, который является UTC + 1, но вообще не использует летнее время.

Часовой пояс не может быть представлен исключительно смещением от UTC. Многие часовые пояса имеют более одного смещения из-за правил (ака "летнее время"). Даты изменения смещения также являются частью правил для часового пояса, как и любые изменения исторического смещения. Многие программные продукты, библиотеки и веб-службы игнорируют эту важную деталь и ошибочно называют стандартное или текущее смещение "зоной". Это может привести к путанице и неправильному использованию данных. По возможности используйте правильную терминологию.

  • Смещение - это просто число, которое показывает, как далеко заходит конкретное значение даты/времени или позади UTC.
    • Большинство смещений выражаются целыми часами.
    • Но есть много, что 30-минутное смещение.
    • И есть несколько, которые смещены на 45 минут.
  • Часовой пояс содержит гораздо больше:
    • Имя или идентификатор, который можно использовать для идентификации зоны.
    • Один или несколько смещений от UTC
    • Конкретные даты и время перехода зоны между смещениями.
    • Иногда это отдельное отображаемое имя для конкретного языка, которое может быть представлено пользователю.

Можно определить правильное смещение, учитывая часовой пояс и дату и время. Но нельзя определить правильный часовой пояс, учитывая только смещение.

Одной из функций компьютера являются электронные часы. С помощью этих часов операционная система Windows может получать точные данные о текущем времени и дате. Эти электронные часы работают довольно точно. Даже если вы полностью выключите компьютер и обесточите системный блок, часы не собьются, и при следующем включении будут показывать правильное время.

Для корректной работы компьютера очень важно, чтобы эти часы показывали правильное время, так как информация о времени указывается при создании файлов, используется для шифрования данных, а также используется для выполнения других функций компьютера.

Необходимость поменять дату в Windows 7 возникает не часто. Например, такая необходимость может возникнуть после через отключения батарейки на материнской плате. В данной статье мы расскажем о том, ка поменять дату в Windows 7.

На самом деле, поменять дату в Windows 7 очень просто. Для этого нажмите левой кнопкой мышки на системные часы, которые находятся в правом нижнем углу вашего экрана.

После этого перед вами появится всплывающее окно с часами и календарем.

Для того чтобы поменять дату в Windows 7 вам необходимо нажать на ссылку «Изменение настроек даты и времени».

После этого перед вами откроется небольшое окно под названием «Дата и время».

Нужно отметить, что окно «Дата и время можно открыть через Панель управления». Для этого нужно открыть Панель управления и перейти в раздел «Часы, язык и регион», а потом в подраздел «Дата и время».

В окне «Дата и время» вам нужно нажать на кнопку «Изменить дату и время».

После этого появится окно под названием «Настройка времени и даты». Здесь можно поменять дату в Windows 7. Для того чтобы это сделать нажмите на заголовок календаря. В нашем случае это «Август 2014».

После нажатия в строке заголовка появится текущий год. Снова нажимаем на заголовок календаря.

После этого вы увидите список годов. Выберите тот, который вы хотите установить.

После этого вам нужно будет выбрать на календаре месяц и дату. Все этих простых манипуляций достаточно для того чтобы поменять дату в Windows 7. Для того чтобы сохранить внесенные изменения закройте все окна нажатием на кнопку «Ok».

Для того чтобы убедиться, что дата поменялась, наведите курсор на системные часы и посмотрите на сплывающее сообщение.

В верхней части всплывающего сообщения вы увидите дату, которая установлена на вашем компьютере.

Как поменять дату в Windows 7 с помощью командной строки

Для этого откройте меню «Пуск», введите команду «cmd» и кликните правой кнопкой мышки по найденной программе «cmd.exe». А в открывшемся окне выберите пункт «Запуск от имени администратора».

После этого командная строка запустится с правами администратора, и вы сможете поменять дату с помощью команды «date».

Мы очень часто пользуемся временем в Linux, начиная от простой задачи узнать сколько сейчас времени, до более сложной - посмотреть логи или узнать когда произошло то или иное событие в системе. Все завязано на времени, поэтому очень важно, чтобы часы шли правильно.

Наша планета разделена на часовые пояса, это было сделано с одной простой целью, чтобы время в любой точке планеты соответствовало солнечному времени. Время между этими зонами отличается на час и всего таких поясов - 24, за эталон взято время по нулевому, Гринвичскому меридиану.

Поэтому в определенный момент время в разных участках планеты будет отличаться на час. В этой небольшой статье мы рассмотрим как изменить часовой пояс Linux, чтобы операционная система правильно работала со временем и могла правильно его синхронизировать через интернет.

Операционная система Linux хранит и обрабатывает системное время в специальном Unix формате - количество секунд прошедших с полуночи первого января 1970 года. Эта дата считается началом эпохи Unix. И используется не ваше локальное время, а время по гринвичскому меридиану.

Для преобразования времени по Гринвичу в региональное время используется часовой пояс. Это преобразование выполняется для каждого пользователя. Это необходимо, чтобы каждый пользователь мог настроить для себя правильное по его временной зоне время. Такое поведение просто необходимо на серверах, когда на одной машине могут работать люди из разных частей мира.

По умолчанию в системе может быть установлен неправильный часовой пояс, это приведет к путанице в логах событий, да и другим трудностям. Но все это легко исправить. Дальше мы рассмотрим несколько способов изменить часовой пояс Linux.

Настройка часового пояса в /etc/localtime

Наиболее популярный и поддерживаемый в большинстве дистрибутивов способ установки часового пояса для всех пользователей - с помощью символической ссылки /etc/localtime на файл нужного часового пояса. Список доступных часовых поясов можно посмотреть командой:

ls /usr/share/zoneinfo/

Сначала создайте резервную копию текущего часового пояса:

cp /etc/localtime /etc/localtime.bak

ln -sf /usr/share/zoneinfo/Ukraine/Kyiv /etc/locatime

Теперь можете проверить текущее системное время с помощью утилиты date:

Если у вас установлена утилита rdate можно синхронизировать время с сетью:

/usr/bin/rdate -s time-a.nist.gov

Осталось только синхронизировать ваши аппаратные часы с новыми настройками, для этого выполните команду:

/sbin/hwclock --systohc

Если нужно изменить часовой пояс только для определенной программы или скрипта, просто измените для нее переменную окружения TZ, например:

export TZ=Ukraine/Kyiv

Эта настройка сохраняется только для текущего сеанса командной оболочки. Чтобы сменить часовой пояс linux для определенного пользователя тоже нужно использовать переменную среды TZ. Только ее нужно добавить в файл ~/.environment. Этот файл читается по умолчанию при входе в систему, а значит переменная будет доступна всем программам:

vi ~/.environment

export TZ=Ukraine/Kyiv

Готово, теперь вы знаете как выполняется настройка часового пояса linux для определенного пользователя.

Другие консольные утилиты

Если вы не хотите использовать описанный выше способ, можно воспользоваться специальными утилитами. Вот только в разных дистрибутивах используются свои утилиты. Рассмотрим варианты для самых популярных дистрибутивов.

В Red Hat Linux:

redhat-config-date

В CentOS и Fedora:

system-config-date

В Slackware или FreeBSD:

dpkg-reconfigure tzdata

В большинстве случаев вы увидите подобное диалоговое окно:

Здесь просто нужно выбрать нужный часовой пояс и нажать кнопку Enter. После этого для окончательного применения настроек нужно будет перезагрузить систему.

Настройка часового пояса в GUI

В дистрибутиве Ubuntu и других, использующих Gnome, настройка часового пояса linux может быть выполнена прямо в параметрах системы. Для этого выберите пункт Дата и время , выберите свое местоположение на карте, или наберите название для поиска в поле ввода:

В KDE аналогично можно установить часовой пояс в настройках системы. Запустите утилиту настроек, откройте пункт Локализация , перейдите в раздел Дата и время , а затем откройте вкладку Часовой пояс :

Остается выбрать часовой пояс в списке и нажать кнопку Применить. Здесь уже изменения должны проявиться моментально.

Выводы

Теперь вы знаете как выполняется установка часового пояса в linux и сможете настроить не только свой домашний компьютер но и сервер с множеством пользователей, которым нужен отдельный часовой пояс для правильного местного времени. Если у вас остались вопросы, спрашивайте в комментариях!

На завершение видео, в котором подробно рассказано, что такое часовые пояса и зачем они нужны:

Похожие записи:


Зачем нужно знать точное время?

Для большинства людей этот вопрос покажется, по крайней мере, глупым, на который вообще нет никакого смысла отвечать, ибо если человек задает его, то он не стоит вашего внимания и потраченного с ним времени на общение.

Человек всегда стремился знать точное время. Еще в древние времена люди выдумывали различные способы узнать время. Как они это только не делали? Они узнавали его по солнцу, по воде, по песку, по звездам и еще кучей различных способов.

В современное время все намного проще. У каждого человека как минимум несколько источников, где он может посмотреть время. Я всегда ношу с собой аж 4 таких источника: 2 телефона, наручные часы и брелок от автомобильной сигнализации. Пусть они все показывают разное время, но хоть и с некоторой погрешностью, я все таки его знаю.

Как работает время в мире?

Тут все просто и сложно одновременно. Весь земной шар “разбит” на часовые пояса. За это скажем спасибо канадскому инженеру С.Флеммингу, который предложил поделить всю планету на 15-ти градусные области. Это деление он предложил начать почему-то с английского Гринвича. Наверное, просто был патриотом своей страны. Такое деление привело к появлению системы координат времени GMT , позволяющей людям легко и просто узнавать время в любой точке земного шара. С приходом GMT тогда спорить никто не стал и страны просто приняли ее для своего же удобства. Но удобство это было не постоянным, так как по своей сути GMT очень сильно зависела от скорости вращения земного шара и такое непостоянство времени не способствовало удобству, ведь приходилось всегда делать поправку на неравномерность вращения планеты.

Спустя несколько десятилетий люди пришли к тому, что стали использовать “фиксированное время” и обозвали эту новую, более удобную систему UTC . В настоящее время именно эта система подсчета времени и используется во всем мире сейчас.

Как работает время в операционной системе Debian?

В Debian как и в любой другой Linux-системе используется одна “модель” формирования времени. Существует 2 времени: системное, его еще называют аппаратными часами, и “относительное” (относительное – это потому что оно немного отличается относительно часового пояса). В BIOS компьютера должно быть выставлено системное время, которое должно совпадать с UTC +0, так как в BIOS нет сдвига относительно часового пояса. Да и к тому же это логично. Компьютер может менять свое местоположение и с ним свой часовой пояс, а эталонное время должно быть всегда единым. Пусть не всегда точным, но единым. Точность системного времени должно обеспечиваться его синхронизацией с серверами точного времени. Я, когда нужно всегда первым делом настраиваю часовой пояс и синхронизацию времени, так как без этого поиск ошибок по логам превращается в нереально нудное и долгое занятие.

Как поменять часовой пояс в Debian?

Есть 2 пути: простой и сложный. В большинстве случаев хватает простого, который и будет рассмотрен ниже. Кстати, если Вы используете VPS -сервер, то настраивать часовой пояс вам точно придется.

За установку часового пояса отвечает команда:

Sudo dpkg-reconfigure tzdata

Утилита имеет псевдографический интерфейс и переведена на большинство языков, в том числе и русский. После ее запуска необходимо выбрать свой регион и нажать Enter . Для города Омска она в конце показала вот такой вывод:

Current default time zone: "Asia/Omsk" Local time is now: Fri Mar 14 00:14:09 OMST 2014. Universal Time is now: Thu Mar 13 17:14:09 UTC 2014.

Изменение даты и времени на телефоне и планшете под Андроид – простейшие операции. Но только для тех, кто хорошо освоил устройство и знает его, как свои пять пальцев. Тема вызвала у вас улыбку? Полноте, сударь: все мы были новичками, и то, что кажется вам элементарным, когда-то казалось непонятным и сложным.

Эта статья для тех, кто только готовится стать «Гуру смартфонов» и «Богом ОС Андроид», точнее – для начинающих. Итак, читайте, как поменять дату в Android, а также настроить на нем время и часовой пояс.


Как поменять дату и время в Android устройстве

Настройка времени и сегодняшнего числа средствами системы

Чтобы изменить параметры даты и времени, запустим средство управления настройками системы – приложение «Параметры ».

Перейдем в раздел «Дата и время ». Опции, которые нас интересуют, находятся здесь. А именно:

  • Автонастройка времени и числа.
  • Автонастройка часового пояса.
  • Установка даты вручную.
  • Ручной выбор часового пояса.

Если хотите, чтобы телефон сам установил текущее время и число, коснитесь верхней кнопки, показанной на скриншоте выше. Выберите один из двух способов синхронизации – по сети или посредством GPS.

Чтобы функция работала, устройство должно периодически подключаться к Интернету или оператору сотовой связи. Иначе синхронизироваться ему будет не с чем.

Если данные отобразились неправильно, в настройках этого же раздела измените часовой пояс. Нажмите кнопку «Выбор часового пояса » и укажите регион, в котором находитесь сейчас.

Или активируйте «Автоматическую синхронизацию часового пояса по сети », как показано на скриншоте ниже.

Когда задействована автонастройка текущего времени и числа, кнопки ручного изменения этих параметров становятся неактивными. Чтобы они снова стали доступны, синхронизацию нужно выключить:

После этого зайдите в раздел «Установка даты »:

И отметьте в календаре сегодняшнее число. Или любое другое. Для сохранения нажмите «Установить ».

Если нужно, проделайте эту же операцию со временем.

Что делать, если число сбивается, а системные часы спешат или отстают

Подобным «недугом» нередко страдают безымянные устройства из Поднебесной. Причина – кривая прошивка или некачественные радиоэлементы системной платы. С таким дефектом часто ничего поделать нельзя, так как другой подходящей прошивки может и не быть, а ремонт обойдется дороже покупки нового девайса. Приходится искать обходные пути.

По сути, путь только один – установить стороннее приложение, которое будет маскировать недостаток. Мой выбор пал на ClockSync – бесплатную утилиту, которая синхронизирует время и число на устройстве независимо от настроек системы.

Единственная сложность при его применении, это необходимость получения прав root (суперпользователя, имеющего доступ к защищенным системным файлам и функциям). Всё остальное очень просто – достаточно отключить синхронизацию в параметрах устройства (как это сделать, я рассказал выше) и включить в самой утилите.

Для этого:

  • Запустите ClockSync и коснитесь кнопки меню (три точки в верхнем правом углу). Выберите «Настройки ».

  • В разделе меню «Автоматическая синхронизация » отметьте «Включить ». Ниже можете задать временной интервал синхронизации, задействовать режим высокой точности, активировать опции экономии трафика и заряда батареи, включить автонастройку часовых поясов и т. д.
  • Если после этого программа показывает неточное время и число, перезагрузите гаджет (выключите и включите). Вот и все дела.

При использовании ClockSync старайтесь выключать телефон или планшет как можно реже и хотя бы раз в сутки подключать его к Интернету (чтобы не пропускать циклы синхронизации). Тогда показания утилиты будут максимально точны.

Поздравляю! Вы сделали очередной шажок к освоению функций мобильных девайсов. Надеюсь, было несложно. Кстати, все я получил так, как написано в статье по ссылке. Возможно, вам она тоже будет интересна.