生成业务 ID
2021/5/13小于 1 分钟
生成唯一的业务ID号
public class UniqueStringGenerator {
private static final int MAX_COUNTER = 10000;
private volatile static int COUNTER = 0;
private static final String PAD_STR = "0";
private static DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("yyMMddHHmmssSSS");
public static synchronized String generatorId() {
if (COUNTER > MAX_COUNTER) {
COUNTER = 0;
}
String uniqueNumber = getNowString() + getNumberString();
COUNTER++;
return uniqueNumber;
}
private static String getNowString() {
LocalDateTime ldt = LocalDateTime.now();
return ldt.format(FORMATTER);
}
private static String getNumberString() {
return StringUtils.leftPad(String.valueOf(COUNTER), String.valueOf(MAX_COUNTER).length(), PAD_STR);
}
}