Linux: дата cmd не принимает свою собственную строку вывода в качестве входной строки?

210
user3182532
$ date Mi 14. Jun 09:54:58 CEST 2017  $ date -d "Mi 14. Jun 09:54:58 CEST 2017" +%s date: invalid date ‘Mi 14. Jun 09:54:58 CEST 2017’ 

Почему команда date не принимает свою собственную строку вывода в качестве допустимой строки ввода?

0

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

1
Kamil Maciorowski

info dateсказал мне, что -dопция требует ввода в независимом от языка формате. Чтобы получить вывод в таком формате, используйте:

LC_TIME=C date 

Поэтому должно работать следующее:

date -d "$(LC_TIME=C date)" +%s 

Это только громоздкий пример, который имеет небольшой смысл (сравните date +%s), но он показывает, что dateпринимает свои выходные данные в качестве входных данных.


Общая информация: чтобы большинство команд создавало независимый от локали вывод, используйте LANG=C some_command. В приведенном выше примере LANG=C dateдолжно работать.

офигенно, спасибо! Я только что прочитал немного об этой переменной среды, это очень полезно. проблема решена, спасибо (также за дополнительную информацию о LANG) user3182532 6 лет назад 0
офигенно, спасибо! Я только что прочитал немного об этой переменной среды, это очень полезно. проблема решена, спасибо (также за дополнительную информацию о LANG) user3182532 6 лет назад 0

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