最近做的项目上线后,发现了一个bug,导致过年多送出一部土豪金
如果程序要用到临界时间点,如:
public static Date ACTIVITY_START_DATE = null;
static {
try {
ACTIVITY_START_DATE = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2014-01-30 23:59:59");
} catch (ParseException e) {
e.printStackTrace();
}
业务场景可能是:31号开始某个活动,或者31号才开始产生某个大奖。如果是写成上面的代码,在并发量大的情况,会导致2014-01-30 23:59:59:001-999毫秒之间的误差判断
所以时间建议写成: ACTIVITY_START_DATE = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("2014-01-31 00:00:00");