Javaの日付とカレンダーの例

Javaの日付とカレンダーの例

Calendar

このチュートリアルでは、java.util.Datejava.util.Calendarを操作する方法を示します。

1. Java日付の例

DateAPIを使用するいくつかの例。

Example 1.1 –日付を文字列に変換します。

    SimpleDateFormat sdf = new SimpleDateFormat("dd/M/yyyy");
    String date = sdf.format(new Date());
    System.out.println(date); //15/10/2013

Example 1.2 –文字列を日付に変換します。

    SimpleDateFormat sdf = new SimpleDateFormat("dd-M-yyyy hh:mm:ss");
    String dateInString = "31-08-1982 10:20:56";
    Date date = sdf.parse(dateInString);
    System.out.println(date); //Tue Aug 31 10:20:56 SGT 1982

P.S Refer to this – SimpleDateFormat JavaDoc for detail date and time patterns.

Example 1.3 –現在の日時を取得

    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
    Date date = new Date();
    System.out.println(dateFormat.format(date)); //2013/10/15 16:16:39

Example 1.4 –カレンダーを日付に変換

    Calendar calendar = Calendar.getInstance();
        Date date =  calendar.getTime();

2. Javaカレンダーの例

CalendarAPIを使用するいくつかの例。

Example 2.1 –現在の日時を取得

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy MMM dd HH:mm:ss");
    Calendar calendar = new GregorianCalendar(2013,0,31);
    System.out.println(sdf.format(calendar.getTime()));

出力

2013 Jan 31 00:00:00

Example 2.2 –簡単なカレンダーの例

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy MMM dd HH:mm:ss");
    Calendar calendar = new GregorianCalendar(2013,1,28,13,24,56);

    int year       = calendar.get(Calendar.YEAR);
    int month      = calendar.get(Calendar.MONTH); // Jan = 0, dec = 11
    int dayOfMonth = calendar.get(Calendar.DAY_OF_MONTH);
    int dayOfWeek  = calendar.get(Calendar.DAY_OF_WEEK);
    int weekOfYear = calendar.get(Calendar.WEEK_OF_YEAR);
    int weekOfMonth= calendar.get(Calendar.WEEK_OF_MONTH);

    int hour       = calendar.get(Calendar.HOUR);        // 12 hour clock
    int hourOfDay  = calendar.get(Calendar.HOUR_OF_DAY); // 24 hour clock
    int minute     = calendar.get(Calendar.MINUTE);
    int second     = calendar.get(Calendar.SECOND);
    int millisecond= calendar.get(Calendar.MILLISECOND);

    System.out.println(sdf.format(calendar.getTime()));

    System.out.println("year \t\t: " + year);
    System.out.println("month \t\t: " + month);
    System.out.println("dayOfMonth \t: " + dayOfMonth);
    System.out.println("dayOfWeek \t: " + dayOfWeek);
    System.out.println("weekOfYear \t: " + weekOfYear);
    System.out.println("weekOfMonth \t: " + weekOfMonth);

    System.out.println("hour \t\t: " + hour);
    System.out.println("hourOfDay \t: " + hourOfDay);
    System.out.println("minute \t\t: " + minute);
    System.out.println("second \t\t: " + second);
    System.out.println("millisecond \t: " + millisecond);

出力

2013 Feb 28 13:24:56
year        : 2013
month       : 1
dayOfMonth  : 28
dayOfWeek   : 5
weekOfYear  : 9
weekOfMonth     : 5
hour        : 1
hourOfDay   : 13
minute      : 24
second      : 56
millisecond     : 0

Example 2.3 –日付を手動で設定します。

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy MMM dd HH:mm:ss");

    Calendar calendar = new GregorianCalendar(2013,1,28,13,24,56);
    System.out.println("#1. " + sdf.format(calendar.getTime()));

    //update a date
    calendar.set(Calendar.YEAR, 2014);
    calendar.set(Calendar.MONTH, 11);
    calendar.set(Calendar.MINUTE, 33);

    System.out.println("#2. " + sdf.format(calendar.getTime()));

出力

#1. 2013 Feb 28 13:24:56
#2. 2014 Dec 28 13:33:56

Example 2.4 –日付に加算または減算します。

    SimpleDateFormat sdf = new SimpleDateFormat("yyyy MMM dd");

    Calendar calendar = new GregorianCalendar(2013,10,28);
    System.out.println("Date : " + sdf.format(calendar.getTime()));

    //add one month
    calendar.add(Calendar.MONTH, 1);
    System.out.println("Date : " + sdf.format(calendar.getTime()));

    //subtract 10 days
    calendar.add(Calendar.DAY_OF_MONTH, -10);
    System.out.println("Date : " + sdf.format(calendar.getTime()));

出力

Date : 2013 Nov 28
Date : 2013 Dec 28
Date : 2013 Dec 18

Example 2.5–日付をカレンダーに変換します。

        SimpleDateFormat sdf = new SimpleDateFormat("dd-M-yyyy hh:mm:ss");
    String dateInString = "22-01-2015 10:20:56";
    Date date = sdf.parse(dateInString);

        Calendar calendar = Calendar.getInstance();
    calendar.setTime(date);