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

Java日期时间操作函数

发布时间:2023-06-04 20:29:35

Java语言中提供了很多日期时间操作函数,方便我们对日期和时间进行处理。下面就来介绍一下一些常用的函数。

1. 获取当前日期和时间

获取当前日期和时间可以使用java.util.Date类和java.util.Calendar类。

1)java.util.Date类

Date date = new Date();

以上代码可以获取当前日期和时间,但是Java官方文档中已经明确表示该类已经过时,建议改用java.time包中定义的java.time.Instant类来处理日期和时间。

2)java.util.Calendar类

Calendar cal = Calendar.getInstance();

Date date = cal.getTime();

以上代码可以获取当前的时间和日期,其中getInstance()方法返回的是当前的Calendar对象,cal.getTime()方法则可将其转换为Date类型的时间。

2. 时间格式化

时间格式化一般使用java.text.SimpleDateFormat类。

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

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

以上代码将当前时间转换为指定格式的字符串,其中“yyyy-MM-dd HH:mm:ss”表示格式,将输出类似于“2021-08-30 15:07:23”的字符串。

3. 日期加减

日期加减可以使用java.util.Calendar类。

Calendar cal = Calendar.getInstance();

cal.setTime(new Date());

cal.add(Calendar.DATE, 1); //加一天

Date date = cal.getTime();

以上代码可以将原日期加上一天。使用add()方法可以进行加减, 个参数指定操作类型(如Calendar.DATE代表操作日期),第二个参数指定加减的数量。

4. 计算日期差值

计算日期差值可以使用java.time包中的java.time.Period类和java.time.Duration类。

1)java.time.Period类

Period类用于计算日期之间的差值。例如,要计算2021-08-30和2021-09-01之间相差的天数,可以使用以下代码:

LocalDate date1 = LocalDate.of(2021, 8, 30);

LocalDate date2 = LocalDate.of(2021, 9, 1);

Period period = Period.between(date1, date2);

int days = period.getDays();

以上代码将会得到相差的天数。

2)java.time.Duration类

Duration类用于计算时间差值。例如,要计算15:30和16:15之间相差的分钟数,可以使用以下代码:

LocalTime time1 = LocalTime.of(15, 30);

LocalTime time2 = LocalTime.of(16, 15);

Duration duration = Duration.between(time1, time2);

long minutes = duration.toMinutes();

以上代码将会得到相差的分钟数。

5. 时间戳转换

时间戳(timestamp)一般是指从某个固定时间点(如1970年1月1日00:00:00 UTC)开始所经过的秒数或者毫秒数。Java中可以使用java.time.Instant类将时间戳转换为日期时间对象,也可以将日期时间对象转换为时间戳。

// 将时间戳转换为日期时间对象

Instant instant = Instant.ofEpochMilli(System.currentTimeMillis());

ZonedDateTime zdt = instant.atZone(ZoneId.systemDefault());

LocalDateTime ldt = zdt.toLocalDateTime();

// 将日期时间对象转换为时间戳

LocalDateTime localDateTime = LocalDateTime.now();

Instant instant = localDateTime.atZone(ZoneId.systemDefault()).toInstant();

long timestamp = instant.toEpochMilli();

以上是常用的一些Java日期时间操作函数,可以根据不同的需求选择合适的函数进行处理。