Date和SimpleDateFormat、Calendar类

一:使用Date和SimpleDateFormat类表示时间

处理日期和时间的相关数据,我们可以使用java.util包中的Date类。使用Date类的默认无参构造方法创建出的对象表示当前时间。

可以使用SimpleDateFormat类来对日期时间进行格式化,如可以将日期转换为指定格式的文本,也可以将文本转换为日期。

packagecn.test;importjava.text.SimpleDateFormat;importjava.util.Date;importjava.text.ParseException;public classDemo {public static voidmain(String[] args) {

Date d= newDate();

System.out.println(d);

//将日期转换为指定格式的文本

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

String today=sdf.format(d);

System.out.println(today);

//将文本转换为日期

String day= "2017年03月27日 16:02:30";

SimpleDateFormat df= new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");try{

Date date=df.parse(day);

System.out.println(date);

}catch(ParseException e) {

System.out.println(e.getMessage());

}

}

}

运行结果:

Mon Mar 27 16:14:58 CST 2017

2017-03-27 16:14:58

Mon Mar 27 16:02:30 CST 2017

注意:调用SimpleDateFormat对象的parse()方法时可能会出现转换异常,及ParseException,因此需要进行异常处理;使用Date类时需要导入java.util包,使用SimpleDateFormat时需要导入java.text包。

二:Calendar类

Date类最主要的作用就是获取当前时间,同时这个类里面也具有设置时间以及一些其他功能,但由于类本身设计的问题,不建议使用,推荐使用Calendar类进行日期和时间的处理。

java.util.Calendar 类是一个抽象类,可以通过调用 getInstance() 静态方法获取一个 Calendar 对象,此对象已由当前日期时间初始化,即默认代表当前时间,如 Calendar c = Calendar.getInstance();

packagecom.test;importjava.util.Calendar;importjava.util.Date;public classDemo {public static voidmain(String[] args) {

Calendar c=Calendar.getInstance();int year =c.get(Calendar.YEAR);int month = c.get(Calendar.MONTH) + 1;int day =c.get(Calendar.DAY_OF_MONTH);int hour =c.get(Calendar.HOUR_OF_DAY);int minute =c.get(Calendar.MINUTE);int second =c.get(Calendar.SECOND);

System.out.println("现在的时间是:" + year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" +second);

}

}

Calendar 类提供了getTime()方法用来获取Date对象,完成Calendar和Date的转换,还可以通过getTimeInMillis()方法获取此Calendar的时间值,以毫秒没单位。

packagecom.test;importjava.util.Calendar;importjava.util.Date;public classDemo {public static voidmain(String[] args) {

Calendar c=Calendar.getInstance();

Date date=c.getTime();

Long time=c.getTimeInMillis();

System.out.println(date);

System.out.println(time);

}

}

运行结果:

Mon Mar 27 22:02:55 CST 2017

1490623375468

Math类

Math类位于java.lang包中,包含用户执行基本数学运算的方法,Math类的所有方法都是静态方法,所有可以直接使用类名.方法名,如:Math.round();

常用的方法:

使用Date和SimpleDateFormat类表示时间

处理日期和时间的相关数据,我们可以使用java.util包中的Date类。使用Date类的默认无参构造方法创建出的对象表示当前时间。

可以使用SimpleDateFormat类来对日期时间进行格式化,如可以将日期转换为指定格式的文本,也可以将文本转换为日期。

packagecn.test;importjava.text.SimpleDateFormat;importjava.util.Date;importjava.text.ParseException;public classDemo {public static voidmain(String[] args) {

Date d= newDate();

System.out.println(d);

//将日期转换为指定格式的文本

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

String today=sdf.format(d);

System.out.println(today);

//将文本转换为日期

String day= "2017年03月27日 16:02:30";

SimpleDateFormat df= new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");try{

Date date=df.parse(day);

System.out.println(date);

}catch(ParseException e) {

System.out.println(e.getMessage());

}

}

}

运行结果:

Mon Mar 27 16:14:58 CST 2017

2017-03-27 16:14:58

Mon Mar 27 16:02:30 CST 2017

注意:调用SimpleDateFormat对象的parse()方法时可能会出现转换异常,及ParseException,因此需要进行异常处理;使用Date类时需要导入java.util包,使用SimpleDateFormat时需要导入java.text包。

Calendar类

Date类最主要的作用就是获取当前时间,同时这个类里面也具有设置时间以及一些其他功能,但由于类本身设计的问题,不建议使用,推荐使用Calendar类进行日期和时间的处理。

java.util.Calendar 类是一个抽象类,可以通过调用 getInstance() 静态方法获取一个 Calendar 对象,此对象已由当前日期时间初始化,即默认代表当前时间,如 Calendar c = Calendar.getInstance();

packagecom.test;importjava.util.Calendar;importjava.util.Date;public classDemo {public static voidmain(String[] args) {

Calendar c=Calendar.getInstance();int year =c.get(Calendar.YEAR);int month = c.get(Calendar.MONTH) + 1;int day =c.get(Calendar.DAY_OF_MONTH);int hour =c.get(Calendar.HOUR_OF_DAY);int minute =c.get(Calendar.MINUTE);int second =c.get(Calendar.SECOND);

System.out.println("现在的时间是:" + year + "-" + month + "-" + day + " " + hour + ":" + minute + ":" +second);

}

}

Calendar 类提供了getTime()方法用来获取Date对象,完成Calendar和Date的转换,还可以通过getTimeInMillis()方法获取此Calendar的时间值,以毫秒没单位。

packagecom.test;importjava.util.Calendar;importjava.util.Date;public classDemo {public static voidmain(String[] args) {

Calendar c=Calendar.getInstance();

Date date=c.getTime();

Long time=c.getTimeInMillis();

System.out.println(date);

System.out.println(time);

}

}

运行结果:

Mon Mar 27 22:02:55 CST 2017

1490623375468

Math类

Math类位于java.lang包中,包含用户执行基本数学运算的方法,Math类的所有方法都是静态方法,所有可以直接使用类名.方法名,如:Math.round();


三:

    private static void formatDataTest() {
        /*
         * 日期转期望格式的字符串
         */
        //HH 和 hh 的差别:前者是24小时制,后者是12小时制。
        StringBuilder sb = new StringBuilder();
        sb.append("yyyy年MM月dd日 HH:mm:ss")
                .append(" 上下午标志 a")
                .append(" E")
                .append(" 一年中的第D天")
                .append(" 一月中的第F个星期")
                .append(" 一年中的第w个星期")
                .append(" 一月中的第W个星期")
                .append(" Z")
                .append(" z");
        SimpleDateFormat sdf = new SimpleDateFormat(sb.toString());
        String dateString = sdf.format(new Date());
        System.out.println(dateString);
        /*
         * 字符串转日期
         */
        Date date;
        try {
            date = sdf.parse(dateString);
            System.out.println(date);
        } catch (ParseException e) {
            System.out.println(e.getMessage());
        }
    }

日期和时间模式:

yyyy:年
MM:月
dd:日
hh:1~12小时制(1-12)
HH:24小时制(0-23)
mm:分
ss:秒
S:毫秒
E:星期几
D:一年中的第几天
F:一月中的第几个星期(会把这个月总共过的天数除以7)
w:一年中的第几个星期
W:一月中的第几星期(会根据实际情况来算)
a:上下午标识
k:和HH差不多,表示一天24小时制(1-24)。
K:和hh差不多,表示一天12小时制(0-11)。
z:表示时区  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值