我们发现亚马逊北美下载的订单日期是北美太平洋时间。由于以前我们下载订单是0时区的时间我们系统手动调整减少了8个小时,导致目前订单出现严重偏差
public static Date getDatePlus(Calendar c,String market) {
if ("US".equals(market) || "CA".equals(market)) {
c.add(Calendar.HOUR, -8);
if(isSummerTime(c,market)){
c.add(Calendar.HOUR, 1);//夏时令
}
} else if("UK".equals(market)){
if(isSummerTime(c,market)){
c.add(Calendar.HOUR, 1);//夏时令
}
} else if ("IN".equals(market)) {
c.add(Calendar.HOUR, 5);
c.add(Calendar.MINUTE, 30);
} else if ("AU".equals(market)) {
c.add(Calendar.HOUR, 2);
} else if ("JP".equals(market)) {
c.add(Calendar.HOUR, 9);
} else if("NL".equals(market)||"PL".equals(market)||"SE".equals(market)||"DE".equals(market)||"FR".equals(market)||"ES".equals(market)||"IT".equals(market)) {
c.add(Calendar.HOUR, 1);
if(isSummerTime(c,market)){
c.add(Calendar.HOUR, 1);//夏时令
}
}else if("AE".equals(market)) {
c.add(Calendar.HOUR, 4);
}else if("SA".equals(market)) {
c.add(Calendar.HOUR, 3);
}else if("BR".equals(market)) {
c.add(Calendar.HOUR, -3);
}else if("TR".equals(market)) {
c.add(Calendar.HOUR, 3);
}else if("EG".equals(market)) {
c.add(Calendar.HOUR, 2);
}else if("MX".equals(market)) {
c.add(Calendar.HOUR, -6);
}
return c.getTime();
}
我们正在追查其他国家时区情况,如果确认所有地方都已经使用当地时间。将去掉此转换逻辑。进一步修复订单统计偏差问题



