欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java中的时间问题(待补充)

程序员文章站 2022-03-03 08:23:11
...

Java中的时间问题(待补充)

数据库mysql

框架 微服务

问题一:

1.mysl中的时间类型存的为datetime,起初实体类中接收参数用的是LocalDateTime

 @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
 private LocalDateTimebeginTime;

这样返回给前端是没有问题的,
但是,当我在代码中需要用到这个时间且与当前时间进行比较时,就出现了以下问题:
1.从数据库中取出的数据为

 2020-08-26T 00:00
处理的方法:  将实体类的接收参数改为Date
  1. 引出的问题:时间格式改变为如下,且时间比数据库取出的多了8个小时
Sat Aug 29 11:12:49 CST 2020

处理方法如下:

//格式转换
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
//转换时区
formatter.setTimeZone(TimeZone.getTimeZone("GMT"));
String formatB = formatter.format(beginTime);

2.与当前时间进行比较的完整代码:

public static  Boolean dateTime( Date beginTime){
        //当前时间及转换格式
        Date date = new Date();
        SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String dateString = formatter.format(date);
//        System.out.println("dateString = " + dateString);
        //数据库中的时间及转换格式+时区
        formatter.setTimeZone(TimeZone.getTimeZone("GMT"));
        String formatB = formatter.format(beginTime);
//        System.out.println("format = " + formatB);
        int i = formatB.compareTo(dateString);
//        System.out.println("i = " + i);
        if (i>=0){
            return true;
        }else {
            return false;
        }
    }
ps: 如果有不足的地方希望大佬们多多指正,共同进步。0.0!