1. 程式人生 > 其它 >java 獲取上個月_Java自學-日期 Calendar

java 獲取上個月_Java自學-日期 Calendar

技術標籤:java 獲取上個月

Java的Calendar類

Calendar類即日曆類,常用於進行“翻日曆”,比如下個月的今天是哪天

示例 1 : Calendar與Date進行轉換

採用單例模式獲取日曆物件Calendar.getInstance();

package date;

//
import java.util.Calendar;
import java.util.Date;

public class TestDate {

    public static void main(String[] args) {
        //採用單例模式獲取日曆物件Calendar.getInstance();
        Calendar c = Calendar.getInstance();

        //通過日曆物件得到日期物件
        Date d = c.getTime();

        Date d2 = new Date(0);
        c.setTime(d2); //把這個日曆,調成日期 : 1970.1.1 08:00:00
    }
}

示例 2 : 翻日曆

add方法,在原日期上增加年/月/日

set方法,直接設定年/月/日

328fbed706cb809f308787d683d958de.png
package date;

import java.text.SimpleDateFormat;
//
import java.util.Calendar;
import java.util.Date;

public class TestDate {

    private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    public static void main(String[] args) {
        Calendar c = Calendar.getInstance();
        Date now = c.getTime();
        // 當前日期
        System.out.println("當前日期:t" + format(c.getTime()));

        // 下個月的今天
        c.setTime(now);
        c.add(Calendar.MONTH, 1);
        System.out.println("下個月的今天:t" +format(c.getTime()));

        // 去年的今天
        c.setTime(now);
        c.add(Calendar.YEAR, -1);
        System.out.println("去年的今天:t" +format(c.getTime()));

        // 上個月的第三天
        c.setTime(now);
        c.add(Calendar.MONTH, -1);
        c.set(Calendar.DATE, 3);
        System.out.println("上個月的第三天:t" +format(c.getTime()));

    }

    private static String format(Date time) {
        return sdf.format(time);
    }
}

練習: Calendar

找出下個月的倒數第3天是哪天

答案

package date;

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

public class TestDate {

    private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    public static void main(String[] args) {
        Calendar c = Calendar.getInstance();

        System.out.println("今天是:" + format( c.getTime()));
        //先翻到下下個月
        c.add(Calendar.MONTH,2);
        //設定到月初
        c.set(Calendar.DATE,1);
        //再往回翻3天
        c.add(Calendar.DATE,-3);
         Exception e;
        System.out.println("下個月倒數第三天是:" + format(c.getTime()));

    }

    private static String format(Date time) {
        return sdf.format(time);
    }
}