1.第三方接口获取到字符串时间,后台需要转成格林威治给app端,没有根据时区来灵活处理全球通用。写死减8小时
DateUtils.getDfTime().format(DateUtils.getUTCTime(DateUtils.getDfTime_jsp().parse(jsonObj.getString(“Time”)))
2.如果是独立部署服务。会获取到服务器部署地的时区,然后将时间进行差量扣除。就能不用改代码实现全球该服务都可以通用,时间都是正确的。后续用到再附上代码
3.附上工具类代码,ps:转之前格式是北京时间yyyy-MM-dd HH:mm:ss字符串,转之后是格林威治(北京时间减了8小时后的时间)
public class DateUtils {
public static DateFormat getDfTime() {
return new SimpleDateFormat("yyyyMMdd'T'HHmmss");
}
/**
*
* @param date
* 当地时间
* @return
*/
public static Date getUTCTime(Date date) {
Integer localOffset = -480;
try {
if (ActionContext.getContext() != null) {
Map<String, Object> session = ActionContext.getContext()
.getSession();
Object obj = session.get(Global.LOCAL_OFFSET);
if (obj != null)
localOffset = (Integer) obj;
}
} catch (Exception e) {
}
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.add(Calendar.MINUTE, localOffset);
return calendar.getTime();
}
public static DateFormat getDfTime_jsp() {
return new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
}
}