参考 : https://ss64.com/bash/date.html
date
コマンドは日付を表示または変更します。
構文
date [-u | -utc | -universal] [mmddhhmm [[cc] yy] [。ss]]
引数なしの「日付」は、現在の時刻と日付を印刷します(以下で説明)。
A +で始まる引数が与えられた場合、日付は現在の時刻と日付(または、以下のオプションで指定された時刻と日付)をその引数で定義された形式で印刷します。関数。
%で始まるディレクティブを除き、形式の文字列の文字は変更されていません。ディレクティブについては、以下に説明します。
オプション:
-d
,--date
= 文字列で記述された日時を表示。「今」の代わりに指定された時間を表示します。これは、ほぼすべての一般的な形式に対応できます。
月名、タイムゾーン、「AM」、「PM」を含めることができます。
「昨日」、「前」、「次」なども使用可能です。
-f
,--file
=datefile
のように、-datefile
の各行を1回ずつ処理します。datefile
が-
の場合、標準入力を使用します。これは、処理する日付が多い場合に役立ち、システムのオーバーヘッドを削減できます。
-i
,--iso-8601[=TIMESPEC]
= ISO 8601準拠の日付/時刻文字列を出力します。デフォルトは%Y-%m-%d
です。TIMESPEC
=date
(または省略時)は日付のみ、hours
、minutes
、seconds
は指定された精度までの時間を表示します。
時間を表示する場合、タイムゾーンを含めるにはフォーマット
%z
を使用します。--utc
も指定されている場合、%Z
の代わりに%Z
を使用します。
-r
,--reference
= 指定されたファイルの最終変更時刻を表示します。--rfc-822
= RFC 822準拠の日付文字列を出力します。例:
Mon, 19 Nov 2012 12:44:56 -0600
非推奨:
--rfc-email
を使用してください。
--rfc-3339=FMT
= 日時をRFC 3339形式で出力します。FMT
=date
、seconds
、またはns
は指定された精度までの日付と時刻を表示します。例:
2006-08-14 02:34:56-06:00
--rfc-email
= 日時をRFC 5322形式で出力します。- 例:
Mon, 14 Aug 2006 02:34:56 -0600
- 例:
-s
,--set
= 文字列で記述された日時を設定します(-d
を参照)。--help
= このヘルプメッセージを表示し、終了します。--version
= バージョン情報を出力し、終了します。
%%リテラル% %ロケールの略語平日名(sun..sat) %Localeの完全な平日の名前、変動長(日曜日..Saturday) %B Localeの略語月名(1月..DEC) %B Localeの1か月の名前、変動長(1月.. 12月) %C Localeの日付と時刻(例:3月33:05:25 2005年) %C世紀;%yのように、最後の2桁を省略します(例:20) %d日の日(01..31) %d日付(mm/dd/yy)%m/%d/%yと同じ %e日の日、ブランクパッド(1..31);%_Dと同じ %fフル日付;同様の%+4y-%m-%d %g ISO週番号の年の最後の2桁(%gを参照) ISO週番号の%g年(%vを参照);通常、%vでのみ便利です %h%Bと同じ、Localeの略語月名(Jan..Dec) %h時間:24時間(00..23) %I時間:12時間(01..12) %J day of Year(001..366) %k時間、スペースパッド(0..23);%_Hと同じ %l時間、スペースパッド(1..12);%_iと同じ %m月(01..12) %m分(00..59) %n newline %nナノ秒(000000000..99999999) %P LocaleのAMまたはPMのいずれかに相当します。不明な場合は空白 %pのような%p、しかし小文字 %Q年間四半期(1..4) %rロケールの12時間の時刻時間(例:11:11:04 pm) %r 24時間時間と分。%h:%mと同じ 1970-01-01 00:00:00以降の%秒、UNIX EPOCH TIME(GNU拡張機能) これは、ウェブサイトのURLを生成するためによく使用されます。 LocalTimeシステムコールによって定義されています。「-date」オプションによって変更されません。 %s second(00..60) %t水平タブ %t時間、24時間(hh:mm:ss)%h:%m:%sと同じ %u週(1..7);1は月曜日です %u週の週数日数は週の初日です(00..53) %v iso週番号、月曜日は週の最初の日(01..53) 1月1日を含む週に4つまたは 新年のより多くの日、それは1週目と見なされます。 それ以外の場合、それは前年の53週目であり、来週です 第1週です。ISO8601に似ています(ただし、ロケールが認識していないため、100%準拠していません。) %w週(0..6);0は日曜日を表します %w週の週数月曜日は週の最初の日(00..53) %xロケールの日付表現(mm/dd/yy) %xロケールの時間表現(%h:%m:%s) %y年の最後の2桁(00..99) %y年(1970 ...) %Z RFC-822スタイル数値タイムゾーン(-0500)(標準以外の延長) +HHMM数値ゾーン(例:-0400) この値は現在のタイムゾーンを反映しています。-dateオプションによって変更されません。 %:Z +HH:MM数値ゾーン(例:-04:00) %:: Z +HH:MM:SS数値ゾーン(例:-04:00:00) %::: Z数値ゾーン:必要な精度(例:-04、+05:30) UTCからの%Zタイムオフセット(-07)これは通常、タイムゾーン+DSTで構成されています -dateオプションによって変更されません。
デフォルトでは、ゼロの日付パッド数値フィールド。GNU日付は、%と数値指令の間の次の修飾子を認識します。
- (ハイフン)フィールドをパッドしないでください。出力が人間の消費を目的としている場合に便利です。
_(アンダースコア)スペースでフィールドをパッドします。出力に固定数の文字が必要な場合に便利ですが、ゼロは気を散らしすぎています。
0(ゼロ)ゼロ付きパッド
+ゼロ付きのパッド、将来の年の前に4桁を超えて「+」を入れます
^可能であれば上品なケースを使用してください
#可能であれば、反対のケースを使用してください
フラグが小数点以下のフィールド幅を10進数として提供します。次に、オプションのモディファイアを使用して、使用可能な場合はロケールの代替表現を使用する場合、または使用可能な場合はロケールの代替数値記号を使用します。
日付 +%d/%m -d "Feb 1" => 01/02 日付 +%-D/%-M -D "Feb 1" => 1/2 日付 +%_ d/%_ m -d "2月1日" => 1/2
カテゴリの同じ形式コードは次のとおりです。
日付: MM/DD/YY形式の%D日付(06/24/13) %xロケールの標準形式の日付(English-usの09/24/13) 年: %C世紀(2015年に20) 4桁の形式の%y年(2015) 2桁の形式での%y年(14) 'y'と同じ%g 'y'と同じ%g 月: %b月名 - 省略(1月) %B月名 - フル(1月) 「b」と同じ%h %m月数(09) 週: %u週の週数日数は週の初日です(00..53) %v iso週番号、月曜日は週の最初の日(01..53) %w週の週数月曜日は週の最初の日(00..53) 日: %曜日 - 略語名(月) %曜日 - フルネーム(月曜日) %u day of the週 - 番号(月曜日= 1) %d月の日-2桁(05) %e月の日 - スペースが先行する桁(5) %j日の日 - (1-366) %u週(1..7);1は月曜日です 「u」と同じ%w 時間: %p amまたはpm 12時間形式の時間(09:15:36 AM) 24時間形式の%R時間 - 秒なし(17:45) 24時間形式の%t時間(17:45:52) %x 't'と同じ UTCからの%Zタイムオフセット(-07)これは通常、タイムゾーン+DSTで構成されています 時間: 24時間形式の%h時間(17) %I時間12時間形式(05) 'h'と同じ%k %l「i」と同じ(上限i =低ケースl) 数分と秒: %m分(35) %s秒(05) 1970年1月1日以降の%S秒が経過しました00:00:00 UTC(UNIX TIME)
時間を設定します
+で始まらない引数が与えられた場合、日付は
その引数によって指定された時間と日付までのシステムクロック(
以下で説明します)。設定するには適切な特権が必要です
システムクロック。-dateおよび - セットオプションは、そのような引数では使用できません。-Universalオプションは、そのようなもので使用できます
指定された時間と日付は、ローカルタイムゾーンではなく、調整された普遍的時間に関連していることを示す議論。
引数は完全に数字で構成されている必要があります。これには次の意味があります。
mm月 月中のDD日 HH時間 mm分 CC年の最初の2桁(オプション) 年の最後の2桁(オプション) SSSecond(オプション) ' - set'オプションもシステムクロックを設定します。以下の例を参照してください。
例
昨日の日の日付を印刷してください:
$ date - -date = '2日前'
現在の日付と時刻のファイルの名前を変更します。
$ stampme = $ home/demo_file _ $(日付 +%y%m%d-%h%m).txt
$ mv $ home/demo_file $ stampme
米国の西海岸での時間を示します(TZSelect(1)を使用してTZを見つける):
$ tz = 'アメリカ/los_angeles'
$
日付
米国の西海岸で来週金曜日の午前9時の現地日/時刻を表示する
$ date - -date = 'tz = "America/los_angeles" 09:00 NEXT FRI'
3か月と1日の日付を印刷してください。
$ date - -date = '3ヶ月1日'
今年のクリスマスの日を印刷してください:
$ date - -date = '25 Dec ' +%j
現在の月の名前と月の日を印刷してください。
$ date '+%b%d'
「%d」はゼロパッド2桁のフィールドに拡張されることに注意してください。
例えば:
$ date -d 1may '+%b%d'は「5月1日」を印刷します。
月の1桁のゼロのない日付を印刷すると、(GNU拡張子) ' - '修飾子を使用して、パディングを完全に抑制できます。
$ date -d = 1may '+%b%-d'
システムクロックを設定するときに、「日付」の多くの非GNUバージョンが必要とする形式で現在の日付と時刻を印刷します。
$ date +%m%d%h%m%y.%s
システムの日付と時刻を設定します:
$ date-set = "2012-6-29 11:59 am"
システムクロックを2分間前方に設定します。
$ date -set = '+2分'
日付をISO 8601準拠の日付/時刻文字列として印刷します。
$ date-i
日付文字列をエポック1970-01-01 00:00:00 GMT(UNIX TIME)以降に秒数に変換するには、「%s」形式で「-date」オプションを使用します。これは、日付ごとにデータの並べ替えやグラフ化 /または比較に役立ちます。次のコマンドは、エポック以来の数秒の数をエポックより1秒遅れて出力しますが、5時間後のタイムゾーン(マサチューセッツ州ケンブリッジ)で、したがって、時代から合計5時間半後になります。
$ date - -date = '2000-01-01 00:00:01 UTC +5時間' +%s
946706400
上記の例でタイムゾーン情報を指定していなかったとします。次に、文字列を解釈する際に、日付はタイムゾーン(およびDST)のコンピューターのアイデアを使用していました。イギリスのグリニッジにいた場合に得られるものは次のとおりです。
#ローカルタイムゾーンが使用されます
$ date - -date = '2000-01-01 00:00:01' +%s
946684800
1970年以来の数秒は、日付のデータを並べ替えたりグラフ化したりするときに役立ちます。ただし、数秒をより読みやすい日付に変換するには、次のようなコマンドを使用します。
$ date -d '1970-01-01 946684800 sec' +"%y-%m-%d%t%z"
2000-01-01 00:00:00 +0000
「コープディーム - その日をつかむ」〜Horace
関連するLinuxコマンド
CAL-カレンダーを表示します。
CRONTAB-後で実行するコマンドをスケジュールします。
時間 - プログラムリソースの使用を測定します。
時間 - ユーザーとシステムの時間。
タッチ - ファイルタイムスタンプを変更します。
標準日付と時刻表記-YYYY-MM-DD
unixtimestamp.com-オンラインコンバーター。
タイムゾーンデータベース-IANA。
同等のWindowsコマンド:日付 - 日付 +時間を表示または設定 - システム時間を表示または設定します。
https://ss64.com/bash/date.html
page:https://minegishirei.hatenablog.com/entry/2024/05/14/081325