java.util.Calendarよくある使い方 - Calendarの構築・設定

2009/02/25 14:52Update
TAGS: Calendar | 日時 | 時刻 | 日付 | 年月 | Date | long

本文はJava日付・時刻処理のjava.util.Calendarクラスのよくある使い方(Date型、long型、年、月、日、時刻から Calendarの構築(設定))について学びます。

Date型、long型、年、月、日、時刻から Calendarの構築(設定)するには、
java.util.Calendar#setTime(Date time)
java.util.Calendar#setTimeInMillis(long time)
java.util.Calendar#set(...)
などのメソッドを利用します。
java.util.Calendar#setメソッドについて、次の記事を合わせてご覧になってください。

java.util.Calendarよくある使い方 - 指定日時の年・月・日・時・分・秒の取得

Calendarの構築・設定例


サンプル
import java.util.Calendar;
import java.util.Date;

public class TestCalendar {

    /**
     * java.util.Calendar
     * 1)Date型、long型、年、月、日、時刻から Calendarの構築(設定)
     */
    public static void main(String[] args) {
        Calendar calendar = Calendar.getInstance(); //現在(実行時点)時刻でCalendarのインスタンス生成
        
        System.out.println("************日付設定前***************");
        System.out.println(calendar.getTimeInMillis());
        System.out.println(calendar.getTime());
        
        System.out.println("************日付設定setTime(Date)***************");
        //Date型からCalendarの構築
        Date date = new Date();
        calendar.setTime(date);
        System.out.println(calendar.getTimeInMillis());
        System.out.println(calendar.getTime());
        
        System.out.println("************日付設定setTimeInMillis(Date)***************");
        //long型からCalendarの構築
        calendar.setTimeInMillis(date.getTime()+1000);
        
        System.out.println(calendar.getTimeInMillis());
        System.out.println(calendar.getTime());
        
        System.out.println("************日付設定set(フィールド)***************");
        //年、月、日、時刻からCalendarの構築
        calendar.set(Calendar.YEAR, 2007);  //2007年
        calendar.set(Calendar.MONTH, 9);   //10月(0..11)
        calendar.set(Calendar.DAY_OF_MONTH, 30);    //31日(0..30)
        
        calendar.set(Calendar.HOUR, 23);    //23時(0..23)
        calendar.set(Calendar.MINUTE, 55);  //59分(0..59)
        calendar.set(Calendar.SECOND, 56);  //59秒(0..59)
        calendar.set(Calendar.MILLISECOND, 888);  //999ミリ秒(0..999)
        
        System.out.println(calendar.getTimeInMillis());
        System.out.println(calendar.getTime());
    }

}


実行結果:
************日付設定前***************
1235540290269
Wed Feb 25 14:38:10 JST 2009
************日付設定setTime(Date)***************
1235540290362
Wed Feb 25 14:38:10 JST 2009
************日付設定setTimeInMillis(Date)***************
1235540291362
Wed Feb 25 14:38:11 JST 2009
************日付設定set(フィールド)***************
1193799356888
Wed Oct 31 11:55:56 JST 2007

参考資料


java.util.Calendar API仕様(Javadoc)

有关作者
Syboos.jp編集長AJavaやオープンソース情報の執筆、Webサイトの開発や運営全般の業務に携わる。

Sponsored Link


Comments

☆☆☆

1 - Syboos.jp編集長A 2009/02/25 15:27

Calendar.setメソッドについて:
        //2000年11月20日を設定します。設定しなかった時、分、秒、ミリ秒などは、0ではなく実行時の時、分、秒、ミリ秒値になります。
        calendar.set(2000, 10, 20);