将今天的 HH:MM am/pm 转换为 Bash 中的纪元



我有两个变量 $sunrise =" 7:23 am"和 $sunset =" 6:10 pm"。我需要将它们两个转换为今天的时代等效词:

secSunrise=($date ... "$sunrise" ... +"%s")
secSunset=$(date ... "$sunset" ... +"%s")

到目前为止,我唯一想出的是使用当前日期时间:

$ secNow=$(date +"%s")
$ echo $secNow
1488331535

如何将这个圆圈平衡并插入HH:MM am/pm 12小时格式的变量中 date命令?

您可以以这种方式使用GNU date

date --date="7:23 am today" +%s
# output => 1488352980
date --date="6:10 pm today" +%s
# output => 1488391800
  • %s打印epoch

来自man date

--date=STRING是一种最免费格式的人类可读日期字符串 例如"Sun, 29 Feb 2004 16:21:42 -0800""2004-02-29 16:21:42"或 甚至"next Thursday"。日期字符串可能包含指示的项目 日历日期,一天中的时间,时区,一周中的一天,相对时间, 相对日期和数字。一个空字符串指示开始 一天。日期字符串格式比容易 在此处记录,但在信息文档中进行了充分描述。

最新更新