订单报告解析问题

我们发现亚马逊北美下载的订单日期是北美太平洋时间。由于以前我们下载订单是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();
	
	}

我们正在追查其他国家时区情况,如果确认所有地方都已经使用当地时间。将去掉此转换逻辑。进一步修复订单统计偏差问题

已处理—修复日期处理函数调用方式,统一使用GeneralUtil.getDatez方法

能看到目前下载的订单时间是不对的。不处理系统里面的订单下载的确实是0时区的订单

调查发现领星也是使用我们原来的设计,使用站点时间统计。从运营处了解到她更加关心,当地国家对应时间的某天的销量。

沿用旧逻辑,按照国家对应时间统计订单。和运营讨论了一下。国家时间的意义大于和亚马逊统计保持一致。以上问题是客户理解与系统统计差异问题。不必修改系统,但需要追加说明。