条件付き構造 [[ ]]
と辞書的に比較できます このように:
[[ "2014-12-01T21:34:03+02:00" < "2014-12-01T21:35:03+02:00" ]]
男から:
<ブロック引用>
[[ 表現 ]]
条件式式の評価に応じて、0 または 1 のステータスを返します。
新しいアップデート:
異なるタイムゾーンの時刻を比較する必要がある場合は、最初に次の方法でそれらの時刻を変換できます:
get_date() {
date --utc --date="$1" +"%Y-%m-%d %H:%M:%S"
}
$ get_date "2014-12-01T14:00:00+00:00"
2014-12-01 14:00:00
$ get_date "2014-12-01T12:00:00-05:00"
2014-12-01 17:00:00
$ [[ $(get_date "2014-12-01T14:00:00+00:00") < $(get_date "2014-12-01T12:00:00-05:00") ]] && echo it works
it works
1 つのオプションは、日付を UNIX エポックからの秒数に変換することです:
date -d "2014-12-01T21:34:03+02:00" +%s
次に、この整数を同じ方法で処理された別の日付と比較できます:
(( $(date -d "2014-12-01T21:34:03+02:00" +%s) < $(date -d "2014-12-01T21:35:03+02:00" +%s) ))
((
))
構文は、2 つの数値を比較するときに算術コンテキストを作成するために使用されます。より一般的な [ ${x} -lt ${y} ]
を使用することもできます 移植性が懸念される場合は、スタイルの構文を使用してください。
このようにする利点の 1 つは、date
たとえば、さまざまな形式を理解する
date -d "next year" +%s
.さらに、 date
はタイムゾーンを理解するので、タイムゾーンが異なる日付のペア間の比較を正しく処理できます。
ただし、これらの問題のどちらにも関係がない場合は、j.a. のソリューションを使用します。