美文网首页
Java 时间处理类 Calendar

Java 时间处理类 Calendar

作者: tingshuo123 | 来源:发表于2018-09-03 21:48 被阅读25次

    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);
        }
    }
    
    

    相关文章

      网友评论

          本文标题:Java 时间处理类 Calendar

          本文链接:https://www.haomeiwen.com/subject/ohoiwftx.html