util包中的日期和时间函数?
util包是Java语言中的一个常用工具包,其中包含了一些与日期和时间相关的函数。这些函数的作用是帮助程序员在Java程序中方便地处理日期和时间,从而使程序更为高效、可靠。在本文中,我们将会对util包中的日期和时间函数进行介绍。
Java中的时间戳
通常情况下,Java程序都会使用时间戳来表示日期和时间。时间戳是指自1970年1月1日0时0分0秒(UTC时区)起至现在的毫秒数。Java中时间戳的表示方式是一个long型整数,可通过System.currentTimeMillis()函数获取当前的时间戳。下面是一个示例代码:
long timeStamp = System.currentTimeMillis(); System.out.println(timeStamp);
输出结果为:
1605961174057
上面的代码中,我们使用System.currentTimeMillis()函数获取了当前的时间戳,并将其打印出来。这里的时间戳表示的是从1970年1月1日0时0分0秒起至现在的毫秒数。
日期和时间的格式化
Java中的日期和时间格式化涉及到两个类:SimpleDateFormat和DateTimeFormatter。
以SimpleDateFormat为例,我们可以使用它来将日期和时间格式化为字符串,也可以将字符串解析成日期和时间。这里我们以格式化为字符串为例进行介绍。
SimpleDateFormat格式化日期和时间的方式是通过创建一个格式化模板字符串,然后将日期和时间的格式化进行匹配。下面是一个示例代码:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date currentTime = new Date();
String formattedTime = sdf.format(currentTime);
System.out.println(formattedTime);
输出结果为:
2020-11-21 22:30:51
这里我们先创建了一个SimpleDateFormat对象sdf,创建时需要将格式化模板字符串作为参数传入。模板字符串中包含了各个部分的日期和时间的格式化方式。在我们的示例代码中,模板字符串为"yyyy-MM-dd HH:mm:ss",分别对应年、月、日、小时、分钟和秒。然后我们使用sdf.format()函数将当前时间格式化为字符串,并将其输出。
DateTimeFormatter也可以用来格式化日期和时间。不同于SimpleDateFormat,它是Java 8之后新加入的类,另外它的实现使用了线程安全的方式。下面是一个示例代码:
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime currentTime = LocalDateTime.now();
String formattedTime = dtf.format(currentTime);
System.out.println(formattedTime);
以上代码和SimpleDateFormat类似,首先创建了DateTimeFormatter对象dtf,同时也需要传入格式化模板字符串"yyyy-MM-dd HH:mm:ss",然后使用dtf.format()函数将当前时间格式化并输出。
日期的计算与比较
针对日期的计算和比较,Java提供了如下类:
- Calendar
- Date
- LocalDate
- LocalDateTime
- ZonedDateTime
- Duration
- Period
其中Calendar和Date类是Java早期版本中用来处理日期的类,它们已经逐渐被LocalDate、LocalDateTime和ZonedDateTime所替代。Duration和Period用于计算时间的差值,Duration计算的是时分秒上的差值,Period计算的是年月日之间的差值。
对于Date类,我们可以使用它的getTime()函数获取时间戳,也可以使用setTime()函数设置时间戳。
Date date = new Date(); long timeStamp = date.getTime(); System.out.println(timeStamp); date.setTime(1606000000000L); System.out.println(date);
这里首先创建了一个Date对象,并通过getTime()函数获取其时间戳并输出。然后我们使用setTime()函数将日期设置为指定的时间戳,并将其输出。
对于LocalDateTime类,我们可以通过now()函数创建一个当前日期和时间的对象,也可以通过of()函数自定义一个日期时间对象。它还提供了plus()和minus()函数,用于对日期进行加减操作。下面是一个示例代码:
LocalDateTime currentDateTime = LocalDateTime.now(); System.out.println(currentDateTime); LocalDateTime customDateTime = LocalDateTime.of(2020, 11, 21, 22, 30, 51); System.out.println(customDateTime); LocalDateTime newDateTime = currentDateTime.plusDays(1).plusMinutes(10); System.out.println(newDateTime);
以上代码中,我们首先使用现有的日期和时间创建了一个LocalDateTime对象currentDateTime,并将其输出。然后我们使用of()函数创建了另一个日期时间对象customDateTime,并将其输出。最后我们使用plusDays()和plusMinutes()函数对日期进行加减操作,并将操作后的结果输出。
总结
本文对Java util包中的日期和时间函数进行了介绍,包括时间戳、日期和时间的格式化、日期的计算和比较等。在Java开发中,日期和时间是非常常见和重要的数据类型,在编写代码时需要对它们的处理和使用非常熟练。希望本文能够对读者学习和使用Java中的日期和时间函数有所帮助。
