Java 生成优惠劵码(唯一)
使用UUID
public static String getUUID() {
return UUID.randomUUID().toString().replace("-", "");;
}
测试代码
public static void main(String[] args) {
long startTime = System.currentTimeMillis();
for(int i=0;i<10000000;i++){
String uuid = getUUID();
System.out.println("uuid---"+i+"======="+uuid);
}
}
用时间(精确到毫秒)
//时间(精确到毫秒)
SimpleDateFormat sdf = new SimpleDateFormat("yyMMddHHmmss");
String dayTime = sdf.format(new Date());
算法
业务代码 + 日期 + UUID
目的:进一步降低编码重复概率的同时,增强其可读性,使其具备一定的业务含义
其中,第二步对中间四位的操作,也可使用四位随机数代替,如下:
//随机数
String randomNumeric = RandomStringUtils.randomNumeric(4);