Date
GNU 日期:截斷提供的日期時間並設置提供的時間
我在變數中有一個時間戳值,我需要從中截斷小時數並設置不同的小時數。GNU date 可以一次性完成嗎?對於“今天”、“明天”或“昨天”等特殊日期,它肯定會這樣做,但我不能讓它使用帶有任意時間戳的算術:
$ date -d"tomorrow 10:05" Thu Jul 23 10:05:00 2020 il@mar2 ~ $ date -d"yesterday 10:05" Tue Jul 21 10:05:00 2020 $ date -d"@1595413447" Wed Jul 22 13:24:07 2020 il@mar2 ~ $ date -d"@1595413447 10:05" date: invalid date '@1595413447 10:05' # desired: Wed Jul 22 10:05:00 2020
GNU
date
不允許對時間戳進行任何附加規範。從
date
資訊文件:如果你在一個數字前加上“@”,它表示一個內部時間戳,以秒為單位。該數字可以包含一個內部小數點(“.”或“,”);內部表示不支持的任何超額精度都會被截斷為負無窮大。 這樣的數字不能與任何其他日期項目組合,因為它指定了完整的時間戳。
(強調我的)
恐怕您需要兩次呼叫,例如
date -d "$(date -d @1595413447 +'%F 10:05')"