Java 时间处理类 Calendar

2018-09-03  本文已影响25人  tingshuo123

Date 类中有很多方法都过期了,推荐使用Calenddar操作日期。
下面列出了常用的时间处理例子

package test;

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

import org.junit.Before;
import org.junit.Test;

public class ClendarDemo {
    
    Calendar calendar = null;
    
    @Before
    public void test() {
        calendar = Calendar.getInstance();
    }
    
    
    @Test
    public void test1() {
        // 获取年
        int year = calendar.get(Calendar.YEAR);
        
        // 获取月, 需要 + 1
        int month = calendar.get(Calendar.MONDAY) + 1;
        
        // 获取日
        int day = calendar.get(Calendar.DAY_OF_MONTH);  // 一个月的第几天
//      int day = calendar.get(Calendar.DAY_OF_WEEK);  // 星期的第几天,周日开始算
//      int day = calendar.get(Calendar.DAY_OF_YEAR);  // 一年当中的第几天
        
        // 获取小时
        int hour = calendar.get(Calendar.HOUR);
        
        // 获取分
        int minute = calendar.get(Calendar.MINUTE);
        
        // 获取秒
        int second = calendar.get(Calendar.SECOND);
        
        // 获取星期 需要 - 1
        int weekday = calendar.get(Calendar.DAY_OF_WEEK) - 1;
        
        System.out.printf("今天是%d年%d月%d日 %d点%d分%d秒 星"
                + "期:%d", year, month, day, hour, minute, second, weekday);
    }
    
    // 一年后的今天
    @Test
    public void test2() {
//      calendar.add(Calendar.YEAR, 1);  // 明年
//      calendar.add(Calendar.MONTH, 1);  //下个月
//      calendar.add(Calendar.DAY_OF_MONTH, 1);  // 明天
        
        
        
        // 获取年
        int year = calendar.get(Calendar.YEAR);
        
        // 获取月
        int month = calendar.get(Calendar.MONTH) + 1;
        
        // 获取日
        int day = calendar.get(Calendar.DATE);
        
        System.out.printf("今天是%d年%d月%d日\n", year, month, day);
    }
    
    // 获取2018年9月的最后一天
    @Test
    public void test3() {
        // 求6月的最后一天
        int currentMonth = 6;
        
        // 指定日期, 7月1日, 6代表的是实际月份的7月
        calendar.set(calendar.get(Calendar.YEAR), currentMonth, 1);
        
        System.out.println(calendar.get(Calendar.MONTH) + 1);
        
        calendar.add(Calendar.DATE, -1);
        
        System.out.println(calendar.get(Calendar.DATE));
        
        
        
    }
    
    /**
     * Calendar、String、Date 的相互转换
     */
    
    // Calendar >> String
    @Test
    public void test4() {
        // Calendar 转 String
        SimpleDateFormat fromat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String dateStr = fromat.format(calendar.getTime());
        
        System.out.println(dateStr);
        
    }
    
    
    // Calendar >> Date
    @Test
    public void test5() {
        // 获取当前的Date对象
        Date date = calendar.getTime();
        System.out.println(date);   
    }
    
    // Date >> String
    @Test
    public void test6() {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String dateStr = sdf.format(new Date());
        System.out.println(dateStr);
    }
    
    // Date >> Calendar
    @Test
    public void test7() {
        calendar.setTime(new Date());
        System.out.println(calendar);
    }
    
    // Stirng >> Date >> Calendar
    @Test
    public void test8() {
        String str = "2014-6-6";
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
        Date date = null;
        try {
             date = sdf.parse(str);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        calendar.setTime(date);
        System.out.println(calendar);
    }
}

上一篇下一篇

猜你喜欢

热点阅读