私の「日付」がタイムゾーンを処理しないのはなぜですか? [コピー]

私の「日付」がタイムゾーンを処理しないのはなぜですか? [コピー]

GNU coreutilsの日付v8.4(CentOS)ではいくつかの奇妙な問題が発生しますが、v8.21(Ubuntu / Mint)では発生しません。

v8.4では、次のような出力が得られます(PSTを使用しています)。

$ date --version | head -n 1
date (GNU coreutils) 8.4
$ date -d '2014-11-08'
Sat Nov  8 00:00:00 PST 2014
$ date -d '2014-11-08T00:00:00'
Fri Nov  7 09:00:00 PST 2014

私が要求していないにもかかわらず、UTCでタイムゾーンを変更しようとしていると仮定しており、この動作は私のローカルLinux Mintシステムでは発生しません。

いいですね。指定されたとおりにタイムゾーン指定子を追加します。W3。マイコンピュータから:

$ date --version | head -n 1
date (GNU coreutils) 8.21
$ date -d '2014-11-08T00:00:00-0800'
Sat Nov  8 00:00:00 PST 2014
$ date -d '2014-11-08T00:00:00-08:00'
Sat Nov  8 00:00:00 PST 2014

途方もない。しかし、CentOSでは:

$ date --version | head -n 1
date (GNU coreutils) 8.4
$ date -d '2014-11-08T00:00:00-0800'
date: invalid date `2014-11-08T00:00:00-0800'
$ date -d '2014-11-08T00:00:00-08:00'
date: invalid date `2014-11-08T00:00:00-08:00'

編集する:他のものは動作しません。date独自の出力を使用してください。

$ date -d "$(date -Ihours)"
date: invalid date `2014-11-08T13-0800'

次のようなする働く:

$ date -d '2014-11-08 00:00:00 -08:00'
Sat Nov  8 00:00:00 PST 2014

ただし、まったく関係のない要件のため、私の日付文字列にスペースを含めることはできません。

混乱しています。私が探しています最近の変更dateしかし、有望に見えるものは見えませんでした。

私の質問:date時間帯をまったく変更しない(または可能な限り)、空白なしで人間が読める文字列で時間帯を入力するにはどうすればよいですか。

答え1

リンクをもう一度確認してください。解放する、コミットメッセージがあります:

date: support parsing of ISO-8601-with-"T" dates

これはcoreutils 8.13で実装されています(参照:変更ログ)。

関連情報