生产随机id(时间加随机数)--会产生重复的随机数(ps:在产生数据量较大的随机数时出现这种情况)

package cn.finedo.service.infoCollection;

import java.text.SimpleDateFormat;
import java.util.Date;

public class test {
/**
* 根据传入的时间表示格式,返回当前时间的格式 如果是yyyyMMdd,注意字母y不能大写。
*
* @param sformat yyyyMMddhhmmss
* @return
*/
public static String getDate(String sformat) {
Date currentTime = new Date();
SimpleDateFormat formatter = new SimpleDateFormat(sformat);
String dateString = formatter.format(currentTime);
return dateString;
}

public static String getRandomNum(int num) {
String numStr = "";
for (int i = 0; i < num; i++) {
numStr += (int) (10 * (Math.random()));
}
return numStr;
}

/**
* 生成id
*
* @return
*/
public static String getGeneratID() {
String sformat = "yyyyMMddhhmmss";
int num = 4;
String s="SN";
String idStr = getDate(sformat) + getRandomNum(num);
String id = s+String.valueOf(idStr);
return id;
}

public static void main(String[] args) {
for (int i = 0; i < 2215; i++) {
System.out.println(getGeneratID());
}
}
}





posted @ 2023-03-20 14:17  风尘世外  阅读(71)  评论(0)    收藏  举报