java 生成一个序列号不重复每天从0开始,格式为:SA+yyyy+001
时间: 2023-12-23 17:06:25 浏览: 43
你可以使用Java的日期和时间类来生成一个每天从0开始的不重复序列号。下面是一个示例代码:
```java
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
public class SerialNumberGenerator {
private static int counter = 0;
private static LocalDate currentDate = LocalDate.now();
private static DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern("yyyy");
public static String generateSerialNumber() {
LocalDate today = LocalDate.now();
if (!today.isEqual(currentDate)) {
currentDate = today;
counter = 0;
}
counter++;
String counterStr = String.format("%03d", counter);
String year = currentDate.format(dateFormatter);
return "SA" + year + counterStr;
}
public static void main(String[] args) {
System.out.println(generateSerialNumber());
System.out.println(generateSerialNumber());
System.out.println(generateSerialNumber());
// 输出示例:SA2022001, SA2022002, SA2022003
}
}
```
这个示例代码中,`generateSerialNumber()` 方法会根据当前日期判断是否需要重置计数器,然后生成一个格式为"SA+年份+三位数"的序列号。每次调用 `generateSerialNumber()` 方法都会返回一个不重复的序列号。
请注意,这只是一个简单的示例代码,没有考虑并发访问的情况。如果你的应用程序需要并发生成序列号,你可能需要考虑使用线程安全的方式来处理计数器。