Изменение даты с помощью команды date вместе с часовым поясом

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

К сожалению, grep не очень хорошо поддерживает Unicode из коробки. Однако Python 3 это делает, поэтому, если он у вас есть, следующий скрипт сделает то, что вам нужно:

import sys

sys.stdout.write("".join( 
   line for line in sys.stdin.readlines()
   if any(    0x4e00 <= ord(ch) <=  0x9fd5    # CJK Unified Ideographs
          or  0x3400 <= ord(ch) <=  0x4dbf    # CJK Unified Ideographs Extension A
          or 0x20000 <= ord(ch) <= 0x2a6d6    # Extension B
          or 0x2a700 <= ord(ch) <= 0x2b73c    # Extension C
          or 0x2b740 <= ord(ch) <= 0x2b81d    # Extension D
          or 0x2b820 <= ord(ch) <= 0x2cea1    # Extension E
          for ch in line)))

0
15.03.2018, 10:51
2 ответа

В большинстве систем Unix системные часы должны быть установлены на время UTC. Затем следует установить соответствующее значение часового пояса, либо установив для переменной среды TZзначение, напримерAsia/Calcutta(для пользователя -на основе -пользователя ), либо установив системный часовой пояс. Команда dateне используется для установки часового пояса.

Установка системного часового пояса может выполняться по-разному на разных Unices. В Ubuntu это делается с помощью команды dpkg-reconfigure tzdata. В OpenBSD это делается путем создания символической ссылки из /etc/localtimeна правильный файл часового пояса в /usr/share/zoneinfo(, например./etc/localtime -> /usr/share/zoneinfo/Asia/Calcutta).

1
28.01.2020, 02:43

При установке даты с помощью dateизменяется время, хранящееся в системе RTC, которая не хранит информацию о часовом поясе. ОС должна интерпретировать время RTC как находящееся в том или ином часовом поясе. Linux обычно предполагает, что время RTC находится в UTC, Windows обычно предполагает, что оно находится в местном часовом поясе. Таким образом, при установке времени в Linux, если вы указываете время в IST, оно обычно преобразует его в UTC, а затем сохраняет временную метку UTC в RTC.

Короче:date— неправильная команда для установки часового пояса. Подходящая команда, вероятно, будет зависеть от того, какую конкретную ОС или дистрибутив вы используете. См., например,:Как изменить часовой пояс в CentOS 7?

0
28.01.2020, 02:43

Теги

Похожие вопросы