原文: 如何生成16位流水号
/**
* @Description: 擷取long類型16流水号
* @return serialNo long類型16流水号
* @date 2017年07月20日 下午03:55:21
*/
public static long getTimeSerialNo(){
long serialNo;
Random r = new Random();
Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR)-2000;
int month = c.get(Calendar.MONTH) + 1;
int day = c.get(Calendar.DAY_OF_MONTH);
int hour = c.get(Calendar.HOUR_OF_DAY);
int minute = c.get(Calendar.MINUTE);
int second = c.get(Calendar.SECOND);
int ms = c.get(Calendar.MILLISECOND);
serialNo = (long)(year * 10000 + month * 100 + day);
serialNo = serialNo * 1000000 + hour * 10000 + minute * 100 + second;
serialNo = ( serialNo * 1000 + ms ) * 1000 + r.nextInt(1000);
return serialNo;
}
/**
* @Description: 擷取String類型16流水号
* @return String類型16流水号
* @date 2017年07月20日 下午03:55:21
*/
public static String getTimeSerialNoStr(){
StringBuilder serialNo=new StringBuilder();
Random r = new Random();
Calendar c = Calendar.getInstance();
int year = c.get(Calendar.YEAR)-2000;
int month = c.get(Calendar.MONTH) + 1;
int day = c.get(Calendar.DAY_OF_MONTH);
int hour = c.get(Calendar.HOUR_OF_DAY);
int minute = c.get(Calendar.MINUTE);
int second = c.get(Calendar.SECOND);
int ms = c.get(Calendar.MILLISECOND);
serialNo.append(year).append(month).append(day)
.append(hour).append(minute).append(second)
.append(ms).append(r.nextInt(1000));
return serialNo.toString();
}