Как вы меняете время аппаратных (hwclock) часов Linux на 24-часовой формат?

1119
wilimayze

В настоящее время мои аппаратные часы возвращают дату / время (hwclock --show) следующим образом:

Sat 28 Jul 2018 08:47:47 PM BST .659124 seconds

И дата возвращается:

Sat Jul 28 21:23:13 BST 2018

Я хотел бы изменить время аппаратных часов на 24-часовой формат и формат даты, чтобы соответствовать формату даты / времени аппаратных часов.

Я выполнил поиск по максимуму и минимуму, но не нашел исчерпывающей документации по управлению датой и временем в системах Linux (т. Е. Коротких, средних и длинных дат, региональных форматов, таких как DD-MM-YYYY или DD / MM / YY), особенно в среда командной строки.

У меня есть мужские часы и свидание. Они не помогают Я также знаю, что есть ряд похожих вопросов, которые задавались ранее. Я смотрел на них, и они тоже не помогают.

Может ли кто-нибудь помочь в связи с моим конкретным вопросом, отмеченным выше, или указать мне на подробную документацию с обсуждением того, как работать с несколькими сценариями даты / времени для разных регионов в среде командной строки? Заранее спасибо.

0
Какой Linux (дистрибутив) и версию вы используете? Alex 5 лет назад 1
Вы действительно хотите сбросить бит 2 регистра состояния B или просто хотите * отобразить * время в 24-часовом формате? Ignacio Vazquez-Abrams 5 лет назад 1
Кроме того, не может дублировать. Я получаю формат ISO 8601, как написано в справочной странице. Ignacio Vazquez-Abrams 5 лет назад 2
@ Алекс Ubuntu 16.04.05 LTS. wilimayze 5 лет назад 0
@ IgnacioVazquez-Abrams Я просто хочу показать время в 24-часовом формате, и это все, а также упорядочить дату / время так, чтобы оно показывало «Сб 28 Июл 2018 20:47:47 PM BST» как для системы (дата), так и для аппаратного обеспечения ( часы). Я не беспокоюсь о части BST, потому что я смог изменить свой регион, используя tzdata. wilimayze 5 лет назад 0
какую локаль и часовой пояс вы используете? Jasen 5 лет назад 0
что это тебе дает? `LC_TIME = C hwclock --show` Jasen 5 лет назад 0
Часовой пояс @Jasen - Европа / Лондон, и LC_TIME = C hwclock --show возвращает «Пн 30 июля 00:15:06 2018 .049586 секунд» wilimayze 5 лет назад 0

1 ответ на вопрос

2
AFH

Вы можете сделать dateвсю работу за вас: -dопция позволяет вам указать дату в «в основном свободной форме для чтения человеком строки даты» (с man date).

К сожалению, формат не является достаточно свободным, чтобы принять hwclockвывод, но он прекрасно работает, если вы удалите последнее поле, указывающее доли секунды:

date -d "$(hwclock|sed 's/ \..*$//g')" 

Я проверил, но не смог определить формат, когда есть доли секунды, поэтому я не знаю, будет ли он показывать тот же формат, например Sat 28 Jul 2018 08:47:47 PM BST .000000 seconds. Если десятичной запятой нет, sedпотребуется другая замена.

Если после часового пояса еще есть двойной пробел, сработает следующее:

date -d "$(hwclock|sed 's/ .*$//g')" 

Вы можете сделать это сценарием оболочки или функцией, определенной ~/.bashrcкак нечто вроде hwclockdf(например, в dateформате).

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