我想转换像
这样的日期Sat Dec 31 22:42:58 CET 2011
到一个正常看起来像
的有效rss日期Mon, 06 Sep 2009 16:45:00 +0000
秒数应始终为00
。反正有没有这样做?除了它可以找出当前作为有效的rss,但这是可选的;)
答案 0 :(得分:2)
使用新的样本输入,您甚至不需要重新格式化。它就像
一样简单$ 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