前言:在原来的项目中,一些功能需要生成随机数来完成,而在先前随机数的生成规则是根据时间戳来生成的,现在需要根据不同的条件来生成不同的随机数。
话不多说,代码如下:
public static String[] getTimeStampMandomNumber(int num,String scourseTypeIdString,String agentIdString){
String[] codes = new String[num];
for(int i = 0;i<num;i++){
SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmssSSS");//设置日期格式
String timeStamp = df.format(new Date());// new Date()为获取当前系统时间,也可使用当前时间戳
String code = agentIdString+scourseTypeIdString+MD5.getMD5(timeStamp+i+"").substring(6,16).toUpperCase();
codes[i] = code;
}
return codes;
}
创建一个测试:
public static void main(String[] args) {
String[] code = GeneratorCode.getTimeStampMandomNumber(10,"1","1");
for(int i =0;i<code.length;i++){
System.out.println(code[i]);
}
}
结果如下:
117EB46DB147
11386E803052
11DDEC83F97F
11304B287ECF
1121BCC78E74
11C1B9E6E9AB
112BE834E878
1158B9CF67A6
11AB1E4A5334
11B628539CF8
而在这生成的随机数中,第一位代表agentIdString,第二位代表scourseTypeIdString,这都是自己根据业务的需求,不同的条件来进行拼接的随机数,后面10位数都是根据时间戳来生成的。