В настоящее время мои аппаратные часы возвращают дату / время (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), особенно в среда командной строки.

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

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

1 ответ1

2

Вы можете сделать так, чтобы 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 ).

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .