From 64c7da70e7619f1947b6039887ae8c5602fedd38 Mon Sep 17 00:00:00 2001 From: heavyrain lee Date: Mon, 6 May 2019 08:18:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B6=88=E6=81=AFid=E5=88=86=E8=A1=A8=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../win/liyufan/im/MessageShardingUtil.java | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/broker/src/main/java/win/liyufan/im/MessageShardingUtil.java b/broker/src/main/java/win/liyufan/im/MessageShardingUtil.java index 15b0b3a6..e877b548 100644 --- a/broker/src/main/java/win/liyufan/im/MessageShardingUtil.java +++ b/broker/src/main/java/win/liyufan/im/MessageShardingUtil.java @@ -8,6 +8,7 @@ package win.liyufan.im; +import java.util.Calendar; import java.util.Date; public class MessageShardingUtil { @@ -55,8 +56,10 @@ public class MessageShardingUtil { mid >>= (nodeIdWidth + rotateIdWidth); Date date = new Date(mid + T201801010000); - int month = date.getMonth(); - int year = date.getYear(); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + int month = calendar.get(Calendar.MONTH); + int year = calendar.get(Calendar.YEAR); year %= 3; return "t_messages_" + (year * 12 + month); } @@ -68,13 +71,15 @@ public class MessageShardingUtil { mid >>= (nodeIdWidth + rotateIdWidth); Date date = new Date(mid + T201801010000); - int month = date.getMonth(); - int year = date.getYear(); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + int month = calendar.get(Calendar.MONTH); + int year = calendar.get(Calendar.YEAR); year %= 3; - month = month + 1; - if (month == 12) { - month = 0; - year = (year + 3 -1)%3; + month = month - 1; + if (month == -1) { + month = 11; + year = (year + 3 - 1)%3; } return "t_messages_" + (year * 12 + month); }