Fork me on GitHub

Java从零开始学三十一(DATE和Calendar类)

一、Date类

Date类是一个相对较为简单的操作类,在使用中直接使用java.util.Date类的构造方法并进行输出就可以得到一个完整的日期

二、Calendar类

Calendar类可以将取得的时间精确到毫秒。但是,这个类本身是一个抽象类,如果要想使用一个抽象类,则必须依靠对象的多态性,通过子类进行父类的实例化操作,Calendar的子类是GregorianCalendar类。
package com.pb.demo3;

import java.util.Calendar;
import java.util.GregorianCalendar;

/*
 * 使用Calendar类显示当前时间,
 * 使用get方法表示时间,日期的各个部分数字如:年,月,日
 * 使用set方法设置日期字段,将当前时间设置为9月
 * 使用add方法为给定的日历字段添加或者减去指定的时间量,在当前时间上加10天
 * 使用GregorianCalendar的isLeapYear方法判断是否是闰年
 */
public class CalendarDemo {

    public static void main(String[] args) {
        /*
         * 将当前日期时间表是为年,月,日,时,分,秒
         */
        Calendar calendar=Calendar.getInstance();  //日历对象
        int year=calendar.get(Calendar.YEAR);
        int month=calendar.get(Calendar.MONTH)+1;  //月份默认是0-11需要手动加1
        int day=calendar.get(Calendar.DAY_OF_MONTH);
        int hour=calendar.get(Calendar.HOUR_OF_DAY);
        int minute=calendar.get(Calendar.MINUTE);
        int second=calendar.get(Calendar.SECOND);
        System.out.println("今天是: "+year+"年"+month+"月"+day+"日");
        System.out.println("现在时:  "+hour+"时"+minute+"分"+second+"秒");
        /*将当前时间的月份设置为9 月*/
        calendar.set(Calendar.MONTH, 8);  //设置月份时-1
        int year1=calendar.get(Calendar.YEAR);
        int month1=calendar.get(Calendar.MONTH)+1;  //月份默认是0-11需要手动加1
        int day1=calendar.get(Calendar.DAY_OF_MONTH);
        System.out.println("今天是: "+year1+"年"+month1+"月"+day1+"日");
        //将当前时间加10天
        calendar.add(Calendar.DAY_OF_MONTH, 10);
        int year2=calendar.get(Calendar.YEAR);
        int month2=calendar.get(Calendar.MONTH)+1;  //月份默认是0-11需要手动加1
        int day2=calendar.get(Calendar.DAY_OF_MONTH);
        System.out.println("今天是: "+year2+"年"+month2+"月"+day2+"日");
        /*判断 是否是闰年*/
        GregorianCalendar gregorianCalendar=new GregorianCalendar();
        boolean flag=gregorianCalendar.isLeapYear(gregorianCalendar.get(gregorianCalendar.YEAR));
        if(flag==true){
            System.out.println("今年是闰年!");
        }else{
            System.out.println("今年是不闰年!");
        }
    }

}

 

 三、SimpleDateFormat类

格式化模板
No.
标记
描述
1
y
年,年份是四位数字,所以需要使用“yyyy”表示年。
2
M
年中的月份,月份是两位数字,所以需要使用“MM”表示月。
3
d
月中的天数,天数是两位数字,所以需要使用“dd”表示日。
4
H
一天中的小时数(24小时),小时是两位数字,使用“HH”表示小时。
5
m
小时中的分钟数,分钟是两位数字,使用“mm”表示分钟。
6
s
分钟中的秒数,秒是两位数字,使用“ss”表示秒。
7
S
毫秒数,毫秒数字是三位数字,使用“SSS”表示毫秒。

四、例子

package com.pb.demo3;

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

public class DateTest {

    public static void main(String[] args) {
        //声明SimpleDateFormat对象并规定格式
        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        //获得当前时间
        Date date=new Date();
        System.out.println("当前时间: "+sdf.format(date));
        String newStr="2011-08-25 14:07:26";
        try {
            Date newdate=sdf.parse(newStr);
            System.out.println("转换后的时间:"+newdate);
           
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
    }

}

 

posted @ 2015-02-27 00:42  森林森  阅读(1625)  评论(2编辑  收藏  举报