サーバ管理していると、吐き出されるログを日付で取得するスクリプトを書いて、cronでバッチ処理するなどよくする。
そのときに、2桁で日付を取得する(01,02,03,...,10,...)スクリプトを書くことがよくあるのでいろいろな言語でメモしておく。
#javascript
Date インスタンスを生成することにより、時刻を取得することができる
<script>
var date = new Date();
var dd = ("0"+date.getDate()).slice(-2);
</script>
getDate で取得した値に「0」をつけて
slice(-2)とすることで、後ろ2桁だけ取得するようにしている
なので、11日など「011」となる場合でも、後ろ2桁だけ取得するので
「11」と表示される
#Ruby
Time#nowメソッドにより現在の時刻を取得することができます。
Time::strftimeメソッドにより、時刻を指定されたフォーマットに従って変換することができます。
■フォーマットの形式
%c
日付と時刻
%d
日(01-31)
%H
24時間制の時(00-23)
%I
12時間制の時(01-12)
%j
年中の通算日(001-366)
%M
分(00-59)
%m
月を表す数字(01-12)
例
day = Time.now
p day.strftime("Now, %m %d") #=> "Now, 01-02"
Time.now.strftime("%Y-%m-%d %H:%M:%S") #=> "2017-01-02 00:31:21"
逆に一桁で表現したいとき
day = Time.now
p day.year #=> 2017
p day.month #=> 1
p day.day #=> 2
#Python
基本的にrubyと同じ
>>> import datetime
>>> now = datetime.datetime.now()
>>> now.strftime("%m-%d")
'01-02'
#シェルスクリプト
date '+フォーマット'でフォーマット指定できる
date '+%m' //01
date '+%d' //02