47

「yyyymmdd」という形式の文字列があります。これはbashの文字列であり、他のすべての日付関数を使用できるように、日付に変換したいと思います。

「20121212」の文字列を「20121212」の日付に「%Y%m%d」の形式で入力します。

4

4 に答える 4

51

これは私のために働いた:

date -d '20121212 7 days'
date -d '12-DEC-2012 7 days'
date -d '2012-12-12 7 days'
date -d '2012-12-12 4:10:10PM 7 days'
date -d '2012-12-12 16:10:55 7 days'

次に、パラメータ'+%Y%m%d'を追加して出力をフォーマットできます。

于 2012-06-21T19:02:22.913 に答える
29

date-dオプションを使用できます

1)形式を「%Y-%m-%d」形式に変更します。つまり、20121212から2012-12-12に変更します。

date -d '20121212' +'%Y-%m-%d'

2)指定された日付=20121212から翌日または最終日を取得します。特定の形式で7日前の日付を取得するように

date -d '20121212 -7 days' +'%Y-%m-%d'

3)ある変数で日付を取得している場合は、datと言います

dat2=$(date -d "$dat -1 days" +'%Y%m%d')
于 2014-05-28T10:40:32.510 に答える
9

dateはGNUdateでのみ機能します(通常はLinuxに付属しています)

OS Xの場合、2つの選択肢があります。

  1. 変更コマンド(確認済み)

    #!/bin/sh
    #DATE=20090801204150
    #date -jf "%Y%m%d%H%M%S" $DATE "+date \"%A,%_d %B %Y %H:%M:%S\""
    date "Saturday, 1 August 2009 20:41:50"
    

    http://www.unix.com/shell-programming-and-scripting/116310-date-conversion.html

  2. CoreutilsからGNUユーティリティをダウンロードします-GNUコアユーティリティ(まだ検証されていません) http://www.unix.com/emergency-unix-and-linux-support/199565-convert-string-date-add-1-a.html

于 2014-12-16T03:48:07.370 に答える
5

dateコマンドの-dオプションを使用するだけです。例:

date -d '20121212' +'%Y %m'
于 2012-06-21T18:28:16.140 に答える