Bash
將格式 ‘%d/%m/%Y %H:%M’ 的日期轉換為秒
我收到以下錯誤
date: invalid date '23/07/2021 14:44'
執行此程式碼時
start="23/07/2021 14:44" startSec=`date +%s -d "${start}"`
我也試過
start="23/07/2021 14:44" startSec=`date -d "${start}" +%s`
如何將字元串日期 ($start) 放入 ‘%d/%m/%Y %H:%M’ 格式,然後將其轉換為秒?
謝謝你。
您可以使用字元串操作將輸入強制轉換為
date
.或者,您必須指定確切的輸入格式的 perl。
start='23/07/2021 14:44' perl -MTime::Piece -sE ' say Time::Piece->strptime($input, "%d/%m/%Y %H:%M")->epoch ' -- -input="$start"
1627051440
字元串操作:我
read
用來將字元串分解為變數,使用字元$IFS
作為欄位終止符:start='23/07/2021 14:44' IFS='/ ' read -r day month year time <<<"$start" date -d "$year-$month-$day $time"
Fri Jul 23 14:44:00 EDT 2021
這有一個 bashism,
<<<
here-string 重定向。對於更多 POSIX shell:IFS='/ ' read -r day month year time <<END_START $start END_START