昨晚帮一个小兄弟看一个把本地时间转化为UTC时间的问题,
找度娘搜了一圈,发现提供的代码都是错的,在本地都能运行并得到良好结果,但是一上到服务器docker环境下就出问题,折腾了快2小时,记录一下。
代码如下:
public class test {
public static String getRegion(long zone ) {
//格式为时区大于0:"+00:00","+08:00",时区小于0:"-06:00"
StringBuilder stringBuilder =new StringBuilder();
if (zone >0) {
if (zone>10) {
stringBuilder.append("+").append(zone).append(":00");
}else {
stringBuilder.append("+").append("0").append(zone).append(":00");
}
}else {
if (zone<-10) {
stringBuilder.append(zone).append(":00");
}else {
stringBuilder.append("-0").append(Math.abs(zone)).append(":00");
}
}
return "GMT"+stringBuilder.toString();
}
public static StringchangeUTCTimeStr3(String date,long zone) {
DateFormat format =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
format.setTimeZone(TimeZone.getTimeZone(getRegion(zone)));
try {
Date dateTest = format.parse(date);
format.setTimeZone(TimeZone.getTimeZone("GMT+00:00"));
return format.format(dateTest);
}catch (Exception e){
}
return "";
}
public static void main(String[] args) {
System.out.println(changeUTCTimeStr("2020-05-11 00:00:00",8));
}
}
网友评论