在Linux中将特定日期格式转换为Epoch

时间:2016-04-03 13:33:08

标签: linux date command-line epoch

我需要将此日期格式转换为纪元:03 / Apr / 2016 14:22:59 命令

date -d "03/Apr/2016 14:22:59" +"%s"

将返回:

date: invalid date ‘03/Apr/2016 14:22:59

任何人都可以帮助我以日期-d识别的方式格式化它吗? 提前谢谢。

3 个答案:

答案 0 :(得分:1)

Perl救援:

perl -MTime::Piece -e 'print Time::Piece
                             ->strptime("03/Apr/2016 14:22:59", "%d/%b/%Y %H:%M:%S")
                             ->epoch'

答案 1 :(得分:1)

日期输入格式的信息页面可以使用以下命令显示:

info date "Date input formats"

不幸的是date不支持您的日期格式。但是,您可以将字符串转换为支持的格式,例如:

date -d "$(echo '03/Apr/2016 14:22:59' | tr -s "/" "-")" +"%s" 

为了提供有关date命令可以使用哪种输入字符串的信息,我将在这里写一个简短的摘要:

从纪元显示日期

date -d "@1513936964"

支持今天,明天,月份名称(1月),上午/下午,时区名称等字样

date -d "tomorrow 10:00:30PM"
date -d "03 April 2016 14:22:59"

日历格式

date -d "04/03/2016 14:22:59"
date -d "03-Apr-2016 14:22:59"
date -d "2016-04-03 14:22:59.00"

时区

date -d "PDT now"

去年哪一天是圣诞节?

date -d "$(date -d "2017-12-24") -1 year" +"%A"

答案 2 :(得分:0)

使用Python:

python -c 'from time import strftime, strptime;print strftime("%s", strptime("03/Apr/2016 14:22:59", "%d/%b/%Y %H:%M:%S"))'