Преобразовать строку даты в временную метку unix без "date -d" в сценарии оболочки

Некоторое время я бил головой в стену.

У меня есть строка даты в моем (ksh) скрипте. Это не текущее время, это какое-то произвольное время.

Как преобразовать эту строку даты в временную метку Unix? Я работаю над SunOS 5.10 и AIX, у которых нет параметра даты -d, а также даты -j -f для MacOS.

Мне нужно только сделать это преобразование в одном месте в моем коде, поэтому в идеале я хотел бы сделать это в одной строке, но если мне нужно создать функцию, то так будет

Я столкнулся с Python и Perl, чтобы добиться этого в одной строке. Python пришел ближе всего, но я не мог заставить его учитывать часовой пояс, который мне бы очень понравился. Любая помощь приветствуется.

1 ответ

Я потерял все, что пытался сделать с Python раньше, но, оглядываясь назад, нашел решение:

python -c 'import datetime, time;print time.mktime(datetime.datetime.strptime("08/22/2014/16", "%m/%d/%Y/%H").timetuple())'

Эта конкретная команда выводит 1408737600, которая составляет 22 часа 22 августа 2014 года на восточном побережье.

licensed under cc by-sa 3.0 with attribution.