シェルプログラミング - 日付で気になる点
MACとWIndows?でdateコマンドのオプションが異なっていて、?となった。
どちらもGNUのbashなんだけど…どうしてだろう?
環境①:macOS Monterey Ver 12.6
$ bash -version | head -n 1
GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin21)
環境②:Windows10,PowerShell,ubuntu
$ bash -version | head -n 1
GNU bash, version 5.1.16(1)-release (x86_64-pc-linux-gnu)
今日の日付
#!/bin/bash
DATE1=`date +%Y%m%d%H%M%S`
echo ${DATE1}
# output -----
# 20221029203030
#!/bin/bash
DATE=`date '+%Y/%m/%d'`
echo ${DATE}
# 2022/10/29
DATE=`date '+%F'`
echo ${DATE}
# 2022-10-29
DATE_Y=`date '+%Y'`
DATE_M=`date '+%m'`
DATE_D=`date '+%d'`
echo ${DATE_Y}
# 2022
echo ${DATE_M}
# 10
echo ${DATE_D}
# 29
今の時刻
$ date +%R
18:50
1日前の日付 環境①
CDATE=`date -v-1d '+%Y/%m/%d (%a)'`
echo ${CDATE} # 2022/11/19 (土)
1日前の日付 環境②
date --date "-1 day " "+%Y-%m-%d"
1年前の日付 環境①
CDATE=`date -v-1y '+%Y/%m/%d (%a)'`
echo ${CDATE} # 2021/11/20 (土)
1年前の日付 環境②
date --date "-1 year " "+%Y-%m-%d"
1ヶ月前の日付 環境①
CDATE=`date -v-1m '+%Y/%m/%d (%a)'`
echo ${CDATE} # 2022/10/20 (木)
1ヶ月前の日付 環境②
date --date "-1 month " "+%Y-%m-%d"
1年2ヶ月と3日前の日付 環境①
1年 2ヶ月 3日後の場合は以下のように組み合わせます。
CDATE=`date -v-1y -v-2m -v-3d '+%Y/%m/%d (%a)'`
echo ${CDATE} # 2021/09/17 (金)
1年2ヶ月と3日前の日付 環境②
date --date "-1 year -2 month -3 day " "+%Y-%m-%d"
ミリ秒まで表示
%Nでナノ秒、上3つでミリ秒
# date "+%Y-%m-%d %H:%M:%S.%N" # 2022-11-22 20:19:56.658313300
date "+%Y-%m-%d %H:%M:%S.%3N" # 2022-11-22 20:19:56.669
この記事が気に入ったらサポートをしてみませんか?