MySQL-Java操作时间类(Date,Time,Timestamp)

1,Java中操作数据库类

MySQL-Java操作时间类(Date,Time,Timestamp)

从图中可以看出sql时间类直接继承于-Java-util包的Date类。现在我们先来第一个Date

注意:要区分导入的是Java-sql包中的。

2,以下是Date类的方法:两个箭头指向是构造方法,画点的是两个静态构造方法。

MySQL-Java操作时间类(Date,Time,Timestamp)

1)使用valueOf(String), 字符串参数对象。

public static void main(String[] args) {
        String tString = "2018-09-10";
        Date date = Date.valueOf(tString);
        System.out.println("---Date----");
        System.out.println(date);
}
/// 结果:
---Date----
2018-09-10

注意:字符串参数只能:【yyyy-MM-dd】看下图api

MySQL-Java操作时间类(Date,Time,Timestamp)

2,第二个: valueOf(LocalDate date); 参数为为一个本地时间类型..

                Date date2 = Date.valueOf(LocalDate.now());
        System.out.println("LocalDate: "+date2);   
结果:LocalDate: 2020-08-22

1)通过api查看 LocalDate.now() 创建一个默认时区时间MySQL-Java操作时间类(Date,Time,Timestamp)

 2)通过LocalDate.now(Zoneid); 创建一个自定义时区:

Date date3 = Date.valueOf(LocalDate.now(ZoneId.systemDefault()));
        System.out.println("系统默认时区:"+date3);

//结果:系统默认时区:2020-08-22

上图是系统默认时区:

Date date4 = Date.valueOf(LocalDate.now(ZoneId.of("America/Ensenada")));
        System.out.println("美国/墨西科时区:"+date4);

//结果:美国/墨西科时区:2020-08-22

从图上已经更改了时区,但是已经过了8小时时差,所有也看不出来,通过Timestamp类可以具体到时分秒,这才能显示时区的不同。

3)找出全部可以使用时区。

Set<String>set = ZoneId.getAvailableZoneIds();
        for (String string : set) {
            System.out.println(string);
        }
// 列出所有可用时区

2,接下来是Time类

Time time = Time.valueOf("25:10:10");
        System.out.println("---Time----");
        System.out.println(time);

//结果:
---Time----
01:10:10

参数:str也是固定格式:HH:mm:ss

3,Timestamp类

String tString2 = "2018-09-10 10:12:10.20";
        Timestamp timestamp = Timestamp.valueOf(tString2);
        System.out.println("---Timestamp----");