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
    评论
DateJava中用于表示日期和时间的。它提供了一些方法来获取和设置日期和时间的信息,比如年、月、日、时、分、秒等。可以使用Date来创建一个具体的日期和时间对象,并对其进行操作和格式化。 SimpleDateFormatJava中的一个日期格式化。它可以将日期对象按照指定的格式转换为字符串,并且也可以将字符串按照指定的格式解析为日期对象。使用SimpleDateFormat,可以方便地对日期和时间进行格式化和解析操作。 在使用SimpleDateFormat时,需要先创建一个SimpleDateFormat对象,并指定日期格式的模式。日期格式的模式可以包含一些特定的字符,比如"yyyy"表示年份,"MM"表示月份,"dd"表示日等。然后可以调用SimpleDateFormat的format()方法将日期对象格式化为字符串,或者调用parse()方法将字符串解析为日期对象。 例如,可以使用SimpleDateFormat将一个Date对象转换为指定格式的字符串: ``` SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date date = new Date(); String formattedDate = sdf.format(date); ``` 也可以使用SimpleDateFormat将一个字符串解析为指定格式的Date对象: ``` SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String dateString = "2022-01-01"; Date parsedDate = sdf.parse(dateString); ``` 这样可以方便地进行日期和时间的格式化和解析操作。 总结起来,DateSimpleDateFormatJava中用于处理日期和时间的Date用于表示日期和时间对象,而SimpleDateFormat用于对日期和时间进行格式化和解析操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [java中时间DateCalendar的使用](https://download.csdn.net/download/u011282129/6028183)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [第5关:DateSimpleDateFormat的用法--常用](https://blog.csdn.net/m0_46719152/article/details/110006901)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值