// 初始化
static AtomicInteger mySeq;
/**
* 返回 【前缀】 + 【9位时间长整型的36进制数,左补0】 + "-" + 5位序列号
*
* @param prefix
* @return
*/
public static String nextID(String prefix) {
if (mySeq == null) {
// 首次运行时的初始化
String timeSeq = new SimpleDateFormat("HHmmss", Locale.getDefault()).format(new Date()).substring(1);
mySeq = new AtomicInteger(Integer.parseInt(timeSeq));
}
// id前缀大写,补满2位
if (prefix == null) {
prefix = "??";
}
prefix = prefix.toUpperCase() + "__";
prefix = prefix.substring(0, 2);
// 9位时间长整型的36进制数,左补0
String ts = lpadZero(Long.toString(System.currentTimeMillis(), Character.MAX_RADIX), 9);
String id = prefix + ts + "-" + mySeq.getAndIncrement();
return id;
}