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

Java日期操作函数的大全介绍

发布时间:2023-06-09 11:08:11

Java日期操作函数是Java编程中一个非常重要的内容,它用来处理和操作日期和时间。在Java中,日期和时间有很多表示形式,比如时间戳、日期、时间、时区等等。本文将介绍Java日期操作函数的大全,让你学会如何使用同来操作日期和时间。

1. Java中的日期表示方式

Java中的日期有如下几种表示方式:

1)字符串形式(如:"2020-07-12")

2)Calendar类

3)Date类

4)LocalDate类

5)LocalDateTime类

6)Instant类

其中,Calendar类和Date类在Java 8之前广泛使用,但它们有一些缺陷,比如线程不安全、月份从0开始等。Java 8提供了新的日期和时间API,即java.time包,其中包含了LocalDate、LocalDateTime、Instant等类,这些类解决了旧API的缺陷,是Java中推荐使用的日期和时间类。

下面,我们将介绍Java中日期操作函数。

2. Java日期操作函数

2.1. 获取当前日期时间

Java中获取当前日期时间的函数是:

Date date = new Date();

System.out.println(date);

2.2. 获取当前时间戳

Java中获取当前时间戳的函数是:

long timestamp = System.currentTimeMillis();

System.out.println(timestamp);

2.3. 将字符串转换成日期

Java中将字符串转换成日期的函数是: 

String str = "2020-07-12"; 

DateFormat format = new SimpleDateFormat("yyyy-MM-dd");

Date date = format.parse(str);

System.out.println(date);

2.4. 将日期转换成字符串

Java中将日期转换成字符串的函数是: 

Date date = new Date();

DateFormat format = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");

String str = format.format(date); 

System.out.println(str);

2.5. 获取指定日期的年、月、日、时、分、秒

Java中获取指定日期的年、月、日、时、分、秒的函数是: 

Date date = new Date();

Calendar calendar = Calendar.getInstance();

calendar.setTime(date);

int year = calendar.get(Calendar.YEAR);

int month = calendar.get(Calendar.MONTH);

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 + " " + hour + ":" + minute + ":" + second);

2.6. 获取指定日期加上/减去指定天数/月数/年数后的日期

Java中获取指定日期加上/减去指定天数/月数/年数后的日期的函数是:

// 加上/减去指定天数

long timestamp = System.currentTimeMillis();

date.setTime(timestamp + 10 * 24 * 60 * 60 * 1000);

System.out.println(date);

// 加上/减去指定月数

calendar.add(Calendar.MONTH, 3);

System.out.println(calendar.getTime());

// 加上/减去指定年数

calendar.add(Calendar.YEAR, 2);

System.out.println(calendar.getTime());

2.7. 判断两个日期是否相等/是否在同一天

Java中判断两个日期是否相等/是否在同一天的函数是: 

// 判断两个日期是否相等

boolean isEqual = date1.equals(date2);

System.out.println(isEqual);

// 判断两个日期是否在同一天

boolean isSameDay = DateUtils.isSameDay(date1, date2);

System.out.println(isSameDay);

2.8. 获取两个日期相差的天数/毫秒数

Java中获取两个日期相差的天数/毫秒数的函数是:

long diffDays = TimeUnit.DAYS.convert(diffMillis, TimeUnit.MILLISECONDS);

System.out.println(diffDays);

long diffMillis = Math.abs(date1.getTime() - date2.getTime());

System.out.println(diffMillis);

2.9. 获取指定日期所在月份的第一天/最后一天

Java中获取指定日期所在月份的第一天/最后一天的函数是:

// 获取指定日期所在月份的第一天

calendar.set(Calendar.DAY_OF_MONTH, 1);

System.out.println(calendar.getTime());

// 获取指定日期所在月份的最后一天

calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));

System.out.println(calendar.getTime());

2.10. 时区处理

Java中时区的处理函数是:

ZoneId zone = ZoneId.of("Asia/Shanghai");

LocalDateTime ldt = LocalDateTime.now(zone);

System.out.println(ldt);

3. 总结

以上就是Java日期操作函数的大全介绍。Java中时间结构比较复杂,因此需要多加练习来熟悉使用。在实际开发中,根据实际需求选择不同类型的日期结构,可以有效地减少日期操作的疏漏和错误。