java生成订单号(日期+流水号)
时间: 2023-07-08 22:01:54 浏览: 377
在Java中生成订单号(日期+流水号),可以使用SimpleDateFormat类和AtomicInteger类来实现。
1. 获取当前日期,可以使用SimpleDateFormat类将当前时间格式化为指定的日期格式,比如"yyyyMMdd"。
```java
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
String currentDate = dateFormat.format(new Date());
```
2. 生成流水号,可以使用AtomicInteger类来维护一个自增的流水号。每次生成订单号时,调用incrementAndGet()方法获取下一个流水号。
```java
AtomicInteger sequence = new AtomicInteger(0);
int nextSequence = sequence.incrementAndGet();
```
3. 将日期和流水号拼接生成订单号。
```java
String orderNumber = currentDate + String.format("%04d", nextSequence);
```
这里使用了String类的format()方法来保证流水号的位数,比如如果流水号是1,则格式化为"0001",如果流水号是12,则格式化为"0012"。
完整的代码如下:
```java
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.concurrent.atomic.AtomicInteger;
public class OrderNumberGenerator {
private static AtomicInteger sequence = new AtomicInteger(0);
public static String generateOrderNumber() {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd");
String currentDate = dateFormat.format(new Date());
int nextSequence = sequence.incrementAndGet();
String orderNumber = currentDate + String.format("%04d", nextSequence);
return orderNumber;
}
public static void main(String[] args) {
String orderNumber = generateOrderNumber();
System.out.println(orderNumber);
}
}
```
每次调用generateOrderNumber()方法可以生成一个新的订单号,格式为"yyyyMMdd0001"、"yyyyMMdd0002"等。
阅读全文