$ 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 не принимает свою собственную строку вывода в качестве допустимой строки ввода?
info date
сказала мне, что опция -d
требует ввода в независимом от локали формате. Чтобы получить вывод в таком формате, используйте:
LC_TIME=C date
Поэтому должно работать следующее:
date -d "$(LC_TIME=C date)" +%s
Это только громоздкий пример, который имеет небольшой смысл (сравните date +%s
), но он показывает, что date
принимает свои выходные данные в качестве входных данных.
Общая информация: Чтобы большинство команд создавало независимый от локали вывод, используйте LANG=C some_command
. В приведенном выше примере LANG=C date
должна работать.