java 如何自动生成编号_java自动生成编号的实现(格式:yyMM+四位流水号)
时间: 2024-02-23 08:00:09 浏览: 22
可以使用Java中的SimpleDateFormat和AtomicInteger类来实现自动生成编号。
具体实现步骤如下:
1. 定义一个AtomicInteger对象,用于生成流水号。
2. 使用SimpleDateFormat定义日期格式,生成当前的年月字符串。
3. 将AtomicInteger对象的值转换为四位字符串,不足四位在前面补0。
4. 将日期字符串和流水号字符串拼接起来,作为最终的编号。
代码如下:
```java
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.atomic.AtomicInteger;
public class CustomIdGenerator {
private static AtomicInteger seq = new AtomicInteger(0);
private static final int MAX_SEQ = 9999;
public static String generateId() {
// 生成流水号
int nextSeq = seq.incrementAndGet();
if (nextSeq > MAX_SEQ) {
synchronized (CustomIdGenerator.class) {
if (seq.get() > MAX_SEQ) {
seq.set(0);
}
nextSeq = seq.incrementAndGet();
}
}
String seqStr = String.format("%04d", nextSeq);
// 生成年月字符串
SimpleDateFormat dateFormat = new SimpleDateFormat("yyMM");
String dateStr = dateFormat.format(new Date());
// 拼接编号
String id = dateStr + seqStr;
return id;
}
}
```
每次调用generateId()方法都会生成一个新的编号,格式为yyMM+四位流水号,例如2108010001、2108010002等。其中yy表示当前年份的后两位,MM表示当前月份。