$ date +%s
1403103042
$ date +"%d.%m.%Y, %H:%M"
18.06.2014, 17:51
формат записи даты как в последнем примере. как конвертировать имеющуюся дату в таком формате?
например как получить время в секундах для даты 30.1.2008, 5:30
$ date +%s
1403103042
$ date +"%d.%m.%Y, %H:%M"
18.06.2014, 17:51
формат записи даты как в последнем примере. как конвертировать имеющуюся дату в таком формате?
например как получить время в секундах для даты 30.1.2008, 5:30
В случае GNU date:
Shell
date +%s -d "$(echo '30.1.2008, 5:30' | sed 's/\([0-9]\+\)\.\([0-9]\+\)\.\([0-9]\+\),/\3-\2-\1/')"
В вашем профиле указано, что у вас OpenBSD. У меня сейчас нет BSD, чтобы проверить, но теоретически должна сработать такая команда:
Shell
date -f "%d.%m.%Y, %H:%M" -j '30.1.2008, 5:30' +%s
не, на шлюзе я такими делами не занимаюсь)
обработка даты на линуксе.
мне почему то казалось, что такую задачу должна выполнять date сама, без посторонних средств.
~# date +%s -d "$(echo '30.1.2008, 5:30' | sed 's/\([0-9]\+\)\.\([0-9]\+\)\.\([0-9]\+\), \([0-9]\+\)/\3-\2-\1 \4/')"
1201667400
1. Не вижу, зачем усложнять. Вариант без четвёртой части тоже запятую убирает.
2. Ту часть сообщения, что про онлайн-конвертер, я не видел. Возможно, вы отредактировали сообщение уже после того, как я на него ответил? В любом случае, тот конвертер предполагает, что вы укажете время в UTC, а приведённая команда - местное время. Время в секундах Unix-эпохи всегда указывается в UTC, соответственно, команда сконвертирует часовой пояс перед выдачей результата. Онлайн-конвертор этого не делает.