Java里面数据和mongo交互时,需要做时区转换,否则会有8小时的时间差。
这个地方我封装一个类,每次都将前端传来的时间进行时区转换,然后再进行mongo查询。
package com.yzkj.zf.utils;
import org.apache.commons.lang3.StringUtils;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Locale;
import java.util.SimpleTimeZone;
/**
* @Description: mongo时区转换类,将字符串时间转换为Date时间---ConversionTime
* @Author: MeiMei
* @CreateDate: 2019-12-16 14:38
* @Version: V1.0
*/
public class ConversionTime {
// 确定转换时间格式
private static String CONVERT_DATE_FORMAT = "yyyy-MM-dd HH:mm:ss";
/* 封装一个转换时间的方法
* @param: ReceiveTime:需要转换的时间
* @param: defaultTime:可以传一个默认时间
* return Date 转换后的固定格式的时间对象
*/
public static Date conversionTime(String ReceiveTime, String defaultTime) {
String startTimeNew;
// 先判断一下传进来的转换时间,如果为空,就赋值为默认时间
if (StringUtils.isNotEmpty(ReceiveTime)) {
startTimeNew = ReceiveTime;
} else {
startTimeNew = defaultTime;
}
// 转换后的时间
Date ReceiveTimeNew = null;
try {
// 解析字符串时间
SimpleDateFormat format = new SimpleDateFormat(CONVERT_DATE_FORMAT, Locale.SIMPLIFIED_CHINESE);
// 转换时区
format.setCalendar(new GregorianCalendar(new SimpleTimeZone(0, "GMT")));
// 格式化
ReceiveTimeNew = format.parse(startTimeNew);
} catch (ParseException e) {
e.printStackTrace();
}
return ReceiveTimeNew;
}
}
来源:CSDN
作者:May女子
链接:https://blog.csdn.net/qq_42739440/article/details/103646436