プログラマメモ2 - programmer no memo2

[java] SimpleDateFormatを使って、日付フォーマット。 2008/02/13

Javaです。
年に何度か、コーディングしないといけなくなる日付フォーマット関連です。

あるシステムでは日付を1966/04/01というふうに扱います。
こちらでは、19660401として扱いたいのですが...
ということが多々あります。

ところで、1966/04/01なら/をとりのぞけば、19660401になりますが、1966/4/1とかだとなんか面倒です。
この辺、/で区切って、一桁だったら頭に0つけるとかでもありですね。


java.text.SimpleDateFormatです。

yyyy/MM/dd
というフォーマットを使ってみました。
parseというメソッドで、Date型に
formatというメソッド、文字列表現に。

小文字のmmだと「分」
大文字のDDだと「年における日」
となります。

package datefromat;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class TestA {

public static void main(String[] args) throws ParseException {
String d = "1966/4/1";
String d2 = "1966/04/01";
System.out.println(date("yyyy/MM/dd", d));
System.out.println(date("yyyy/MM/dd", d2));

if(date("yyyy/MM/dd", d).equals(date("yyyy/MM/dd", d2))){
System.out.println("OK");
}

System.out.println(toyyyyMMdd("yyyy/MM/dd", d));
System.out.println(toyyyyMMdd("yyyy/MM/dd", d2));
}

static public Date date(String format, String d) throws ParseException{
Date date = new SimpleDateFormat(format).parse(d);
return date;
}

static public String toyyyyMMdd(String format, String d) throws ParseException{
Date date = new SimpleDateFormat(format).parse(d);
return new SimpleDateFormat("yyyyMMdd").format(date);
}
}

: