はじめに
今回はJavaの日付に関する型の変換についてまとめようと思います。
Date型とCalendar型
Date型は、日時を扱う際に使用する日付型のクラスです。日時に関するざまざまな処理が可能となります。
Calendar型は、Data型同様日時を扱う際に使用する日付型のクラスです。しかし、Date型よりも加算・減算、日時を比較するなどの処理に特化したクラスになります。
String型とDate型
String型→Date型
- はじめにSimpleDateFormatクラスで日付のフォーマットを指定する。
- parse(String型)メソッドにより変換
- 例外処理する必要あり(ParseException)
public class FormatChange {
public static void main(String[] args) throws ParseException{
// 日付の定義
String strDate = "2021/5/21";
// SimpleDateFormatで日付フォーマット設定
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
// parse()メソッドで変換
Date Datedate = sdf.parse(strDate);
// Date型で出力
System.out.println(Datedate); // =>Fri May 21 00:00:00 JST 2021
}
}
Date型→String型
- はじめにSimpleDateFormatクラスで日付のフォーマットを指定する。
- format(Date型)メソッドにより変換
public class FormatChange {
public static void main(String[] args){
// 現在の日付を取得
Date Datedate = new Date();
// SimpleDateFormatで日付フォーマット設定
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
// format()メソッドで変換
String strDate = sdf.format(Datedate);
// String型で出力
System.out.println(strDate); // =>2021/05/21
}
}
Date型とCalendar型
Date型→Calendar型
- Date型のインスタンス生成
- Calendar型のインスタンス生成
- setTime(Date型)メソッドにより変換
public class FormatChange {
public static void main(String[] args) throws ParseException{
// 現在の日付をDate型で取得
Date Datedate = new Date();
// Calendar型のインスタンス生成
Calendar calendar = Calendar.getInstance();
// setTime()メソッド変換
calendar.setTime(Datedate);
// Calendar型で出力
System.out.println(calendar); // =>java.util.GregorianCalendar[time=1621525339771,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Tokyo",offset=32400000,dstSavings=0,useDaylight=false,transitions=10,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2021,MONTH=4,WEEK_OF_YEAR=21,WEEK_OF_MONTH=4,DAY_OF_MONTH=21,DAY_OF_YEAR=141,DAY_OF_WEEK=6,DAY_OF_WEEK_IN_MONTH=3,AM_PM=0,HOUR=0,HOUR_OF_DAY=0,MINUTE=42,SECOND=19,MILLISECOND=771,ZONE_OFFSET=32400000,DST_OFFSET=0]
}
}
Calendar型→Date型
- Calendar型のインスタンス生成
- getTime(Calendar型)メソッドにより変換
public class FormatChange {
public static void main(String[] args) throws ParseException{
// 現在の日付をDate型で取得
Calendar calendar = Calendar.getInstance();
// getTime()メソッドで変換
Date date = calendar.getTime();
// Date型で出力
System.out.println(date); // =>Fri May 21 00:50:15 JST 2021
}
}