解析用于在bash中检索日期的字符串

mak*_*aks 0 bash

我有以下格式的字符串dd/MMM/YYYY:HH:mm:ss(例如13/Jan/2011:08:23:34)我需要将此字符串转换为日期.我怎样才能做到这一点?提前致谢

Sor*_*gal 6

尝试

GNU日期

mydate='13/Jan/2011:08:23:34'
date +%s -d "${mydate:3:3} ${mydate%%/*} ${mydate:7:4} ${mydate#*:}"
Run Code Online (Sandbox Code Playgroud)

FreeBSD日期

mydate='13/Jan/2011:08:23:34'
date -j -f '%d/%b/%Y:%H:%M:%S' "${mydate}" +%s
Run Code Online (Sandbox Code Playgroud)

基本上,使用GNU日期,您必须将日期重新格式化为GNU日期可以理解和解析的内容.我选择了一种粗糙的方法(在现实世界中,它需要更加可靠).FreeBSD在这方面更好,并允许您指定解析器应查找的日期格式.