2017-03-01 62 views
2

我有兩個變量$sunrise =「7:23 am」和$sunset =「6:10 pm」。我需要他們兩個在轉換成今天的時代相當於:將今天的HH:MM am/pm轉換成Bash的時間

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

到目前爲止,我已經想通了,唯一的事情是與當前日期與時間做這件事:

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

如何方此圓並將HH:MM am/pm 12小時格式化變量插入到date命令中?

回答

4

你可以使用GNU date這樣:

date --date="7:23 am today" +%s 
# output => 1488352980 

date --date="6:10 pm today" +%s 
# output => 1488391800 
  • %s打印劃時代

man date

--date=STRING是大多數自由格式的人類可讀的日期字符串 如"Sun, 29 Feb 2004 16:21:42 -0800""2004-02-29 16:21:42"或 甚至"next Thursday"。日期字符串可以包含指示日曆日期,時間,時區,星期幾,相對時間, 相對日期和數字的項目。一個空字符串表示當天的開頭 。日期字符串格式比在這裏記錄的容易 更復雜,但在信息文檔中有詳細描述。

+2

'--date'是一個奇妙的功能。經過測試和'secSunrise = $(date - date =「$ today today」+%s)''很好。 – WinEunuuchs2Unix

相關問題