Date

一個系統上的無效日期;在另一個系統上完全有效?

  • January 17, 2020

我的程式碼需要一個開始時間,然後從該開始時間定義一些其他日期/時間變數。像這樣:

shour=$(date -d "yesterday 3PM" -u)

dd=$(date "+%d" -d "$shour" -u) 

sdate=$(date "+%Y%m%d" -d "$shour" -u)

這返回;

date: invalid date 'Thu 16 Jan 15:00:00 UTC 2020'
date: invalid date 'Thu 16 Jan 15:00:00 UTC 2020'

把我的頭髮拉出來!

date無法讀取預設輸出Thu 16 Jan 15:00:00 UTC 2020

date您想要再次處理的任何輸出都date需要使用格式字元串格式化輸出'+%F %T'

我認為今年的位置可能是問題所在。雖然這失敗了:

host:~ # date -d 'Thu 16 Jan 15:00:00 UTC 2020' 
date: invalid date ‘Thu 16 Jan 15:00:00 UTC 2020

這適用於我的虛擬機:

host:~ # date -d 'Thu 16 Jan 2020 15:00:00 UTC' 
Thu Jan 16 16:00:00 CET 2020

我在第一個語句中添加了日期格式,這似乎有效:

shour=$(date "+%Y%m%d" -d "yesterday 3PM" -u)
ddate="$(date -d "${shour}" -u)"
sdate=$(date "+%Y%m%d" -d "$shour" -u)

引用自:https://unix.stackexchange.com/questions/562601