Обновление
С новым вводом сэмпла вам даже не нужно переформатировать.Это так же просто, как
$ time="Sat Dec 31 22:42:58 CET 2011"; date -Rd "$time"
Sat, 31 Dec 2011 13:42:58 -0800
Хитрость заключается в том, чтобы переформатировать вашу дату в строку, которую date
может понять и принять в качестве ввода.В этом случае это 2011-12-31 13:37
.Я использую awk
, чтобы сделать это, но есть ряд различных утилит, которых будет достаточно.
#!/bin/bash
time="12-31-11 13:37"
date -Rd "$(awk -F'[- ]' '{printf("20%s-%s-%s %s\n", $3,$1,$2,$4)}' <<<"$time")"
Вывод
$ time="12-31-11 13:37"; date -Rd "$(awk -F'[- ]' '{printf("20%s-%s-%s %s\n", $3,$1,$2,$4)}' <<<"$time")"
Sat, 31 Dec 2011 13:37:00 -0800