欢迎访问宙启技术站
智能推送

Java日期函数的使用方法

发布时间:2023-06-20 07:36:40

介绍

Java日期函数主要通过Java提供的java.util.Date类和java.text.SimpleDateFormat类实现。java.util.Date类提供了一些基本的方法获取日期,但是存在使用不便、时区问题等缺点,所以通常需要借助java.text.SimpleDateFormat类进行日期格式化,从而实现更方便、更灵活的日期操作。

Java日期的表示方式

Java中日期通常使用long型来表示,表示自1970年1月1日0时0分0秒起的毫秒数,称为时间戳。时间戳可以通过System.currentTimeMillis()方法获取。

日期格式化

日期格式化可以将Java日期对象转换成指定格式的字符串,以便于显示和存储。Java日期格式化类主要有java.text.SimpleDateFormat和java.util.Formatter。

SimpleDateFormat的使用方法:

1.定义SimpleDateFormat对象,指定格式化字符串。

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

2.使用format()方法将Date对象格式化成字符串。

String dateStr = sdf.format(new Date());

3.将字符串转换成Date对象,使用parse()方法。

Date date = sdf.parse(dateStr);

其中,格式化字符串中的格式符号代表不同的日期元素,如下表所示:

符号 含义 

y 年份(四位数) 

M 月份(1-12) 

d 月中的日期(1-31) 

H 小时(0-23) 

m 分钟(0-59) 

s 秒(0-59) 

S 毫秒(0-999) 

E 星期几 

D 一年中的第几天 

w 一周中的第几天(0-6,0代表周日) 

示例:

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

String dateStr = sdf.format(new Date());

System.out.println("格式化后的日期为:" + dateStr);

Date date = sdf.parse(dateStr);

System.out.println("解析后的日期为:" + date.toString());

输出结果:

格式化后的日期为:2021-12-01 15:21:32

解析后的日期为:Wed Dec 01 15:21:32 CST 2021

日期计算

Java日期计算可通过Calendar类和Date类的add()方法和getTime()方法实现。

Calendar类的使用方法:

1.获取Calendar对象,可以使用getInstance()方法获取当前日期的Calendar实例。

Calendar calendar = Calendar.getInstance();

2.通过set()方法设置日期。

calendar.set(Calendar.YEAR, 2022);

calendar.set(Calendar.MONTH, Calendar.JANUARY);

calendar.set(Calendar.DAY_OF_MONTH, 1);

3.日期计算可以通过add()方法实现,参数为日期元素和增减量。

calendar.add(Calendar.DATE, 7);

4.将Calendar对象转换成Date对象,使用getTime()方法。

Date date = calendar.getTime();

示例:

Calendar calendar = Calendar.getInstance();

calendar.set(Calendar.YEAR, 2022);

calendar.set(Calendar.MONTH, Calendar.JANUARY);

calendar.set(Calendar.DAY_OF_MONTH, 1);

calendar.add(Calendar.DATE, 7);

Date date = calendar.getTime();

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

String dateStr = sdf.format(date);

System.out.println("计算后的日期为:" + dateStr);

输出结果:

计算后的日期为:2022-01-08

Date类的add()和getTime()方法用法类似,可以根据实际需求选择。

日期比较

Java日期比较主要通过Date类提供的before()、after()和equals()方法实现。

before()方法判断日期是否在指定日期之前。

after()方法判断日期是否在指定日期之后。

equals()方法判断日期是否相等。

示例:

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

Date date1 = sdf.parse("2021-01-01");

Date date2 = sdf.parse("2021-02-01");

Date date3 = sdf.parse("2021-01-01");

if (date2.after(date1)) {

    System.out.println(date2 + "在" + date1 + "之后");

}

if (date1.before(date2)) {

    System.out.println(date1 + "在" + date2 + "之前");

}

if (date1.equals(date3)) {

    System.out.println(date1 + "等于" + date3);

}

输出结果:

Mon Feb 01 00:00:00 CST 2021在Fri Jan 01 00:00:00 CST 2021之后

Fri Jan 01 00:00:00 CST 2021在Mon Feb 01 00:00:00 CST 2021之前

Fri Jan 01 00:00:00 CST 2021等于Fri Jan 01 00:00:00 CST 2021

结论

Java日期函数通过SimpleDateFormat类和Calendar类等实现了常见的日期操作,例如日期格式化、日期计算和日期比较等。对于日期相关的系统开发,熟练掌握Java日期函数的使用方法非常重要。