生成编码的工具

This commit is contained in:
guo
2024-07-11 17:05:11 +08:00
parent 39402b06dd
commit 39539e5ef6
@@ -0,0 +1,39 @@
package com.guo.learningprogresstracker.utils;
import lombok.RequiredArgsConstructor;
import java.text.SimpleDateFormat;
import java.util.Date;
/**
* 用于生成编码的工具
*
* @author guo
*/
@RequiredArgsConstructor
public class GenerateNumTool {
public static int getNextSequence() {
// 获取当前时间的毫秒级时间戳
long timestamp = System.currentTimeMillis();
// 使用时间戳的最后6位作为序列号
return (int) (timestamp % 1_000_000);
}
/**
* 生成以prefix开头separator分割的编码
* 例如:PREFIX—20240711-423468
* @param prefix
* @param separator
* @return
*/
public String generateNum(String prefix, String separator) {
String currentDate = new SimpleDateFormat("yyyyMMdd").format(new Date());
// 唯一的后缀
int sequence = getNextSequence();
// 返回完整的 taskNum
return prefix + separator + currentDate + separator + sequence;
}
}