Создать действительную дату rss - PullRequest
0 голосов
/ 01 января 2012

Я хочу преобразовать дату типа

Sat Dec 31 22:42:58 CET 2011

в действительную дату rss, которая обычно выглядит как

Mon, 06 Sep 2009 16:45:00 +0000

Секунды всегда должны быть 00.Есть ли способ сделать это?Кроме того, можно было бы узнать ток как действительный rss, но это не обязательно;)

1 Ответ

2 голосов
/ 01 января 2012

Обновление

С новым вводом сэмпла вам даже не нужно переформатировать.Это так же просто, как

$ 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...