/** * periodInMillis:时间间隔毫秒数 * currentInMillis :当前时间毫秒数 * timezoneInMillis: 8小时 对应的毫秒数 **/ public static String collectIndexForTime(long periodInMillis, long currentInMillis , long timezoneInMillis) {app
currentInMillis += timezoneInMillis; if (currentInMillis <= periodInMillis) { return 0; } long time = currentInMillis/periodInMillis * periodInMillis - timezoneInMillis; String start = DateFormatUtils.format(time, Consts.DATE_FORMAT_INDEX); String end = DateFormatUtils.format(time+periodInMillis-1, Consts.DATE_FORMAT_INDEX); StringBuilder sb = new StringBuilder(); sb.append(start).append(ES_INDEX_SPLIT_STR).append(end); return sb.toString(); } 这段代码能实现:假如:periodInMillis = 432000000(5天) 当前时间:System.currentTimeMillis()ui
返回的结果会是:20181210-20181214orm
若是当前时间是20181216,这返回结果就会是:20181214-20181219io
不知道上面的实现原理?有没有大神给解释下。form