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
- 引出的问题:时间格式改变为如下,且时间比数据库取出的多了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;
}
}