Date
用的最多这里主要介绍该类。java.util 包提供了 Date 类来封装当前的日期和时间。 Date 类提供两个构造函数来实例化 Date 对象。
package com.company;
import java.util.Date;
public class Main {
public static void main(String[] args) {
// write your code here
System.out.println(new Date());
Date date = new Date();
System.out.println("打印对象"+date);
System.out.println("打印对象类型"+date.getClass());
System.out.println("对象的字符串打印"+date.toString());
System.out.println("对象的字符串打印"+date.toString().getClass());
}
}
由输出可以看出Date的其toString方法输出结果是一样的,但是一个是bean对象可以操作,一个是字符串用于赋值。但是这种日期格式并不是我们需要的,该如何转化为所需的格式呢?
DateFormat
对象是对日期及时间的格式化和解析工具库,SimpleDateFormat
是对Date的解析库的拓展
package com.company;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Main {
public static void main(String[] args) {
// write your code here
System.out.println(new Date());
Date date = new Date();
SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd hh:mm:ss");
System.out.println("当前时间为: " + ft.format(date));
}
}
SimpleDateFormat
的参数可以自定义yyyy-MM-dd hh:mm:ss
就是定义的输出参数。
一般这个时间字符
2023-01-12 01:50:17
就满足使用了,且是一个字符串类型。
Java 1.8 引入了全新的日期时间库java.time
。LocalDate
,LocalTime
和 LocalDateTime
,顾名思义,其意思就是本地日期、本地时间 和 本地日期时间。
LocalDate 只包含日期,例如:“2022-12-03”,而 LocalTime 则只包含时间其精确到纳秒值,例如:“12:14:23.267”。相对的 LocalDateTime其实就是LocalDate 和 LocalTime 的结合体,其包含了日期和时间。
java.time库为我们提供了创建这些日期时间的工厂方法,主要分为四类:
- now:根据当前的日期时间来生成,同时我们也可以指定相应的时钟[Clock]或时区ID[ZoneId],否则就按照本地的时钟或时区生成。
- parse:通过指定的日期时间的字符串生成,同时我们也可以指定字符串的格式
- of:通过指定生成时间日期的详细信息生成
- from:通过其它日期时间对象来生成当前类型的时间对象。
package com.company;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
public class DataTestOne {
public static void main(String[] args) {
LocalDate localDate = LocalDate.now();
System.out.println(localDate);
LocalTime localTime = LocalTime.now();
System.out.println(localTime);
LocalDateTime localDateTime = LocalDateTime.now();
System.out.println(localDateTime);
}
}
也可以通过DateTimeFormatter
的方法变换为标准格式,或者获取单独的片段组装为所需的时间格式:
package com.company;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.format.DateTimeFormatter;
public class DataTestOne {
public static void main(String[] args) {
LocalDateTime localDateTime = LocalDateTime.now();
System.out.println(localDateTime.format(DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss")));
}
}
2023-01-12 02:24:12
的格式和数据的Date类型是一样的,可以直接用String类型接收。