根据时间生成流水号
2018-02-22 16:32
92 查看
package test; import java.text.SimpleDateFormat; import java.util.Date; /** * 获取主键:返回17位时间戳+3位递增数(同一时间递增) */ public class IdCreator { private static int addPart = 1; private static String result = ""; private static SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); private static String lastDate = ""; /** * 获取主键 * @param length 长度 * @return 返回17位时间戳+3位递增数 */ public synchronized static String getId(int length) { //获取时间部分字符串 Date now = new Date(); String nowStr = sdf.format(now); //获取数字后缀值部分 if (IdCreator.lastDate.equals(nowStr)) { addPart += 1; } else { addPart = 1; lastDate = nowStr; } if (length > 17) { length -= 17; for (int i = 0; i < length - ((addPart + "").length()); i++) { nowStr += "0"; } nowStr += addPart; result = nowStr; } else { result = nowStr; } return result; } public static void main(String[] args) { System.out.println(IdCreator.getId(20)); } }
相关文章推荐
- 用JS实现根据当前时间随机生成流水号或者订单号
- java根据时间生成唯一ID
- python根据时间生成mongodb的ObjectId的方法
- 根据日期+时间生成唯一编码
- 根据日期时间和随机量生成唯一ID!!
- 自动生成C# 年月日加流水号的单据号、及日期时间相关函数的用法
- 根据日期时间和随机量生成唯一ID!!
- C# DateTime.ToString根据不同语言生成相应的时间格式
- 流水号生成方法——按照时间格式生成的有序唯一编码(支持并发)
- UUIDUtils工具类-根据时间生成UUID
- impala保存时间类型timestamp---NanoTimeUtils根据JdateTime生成nanotime
- 根据时间随机生成12位数字,且不重复2015-8-21
- 使用log4j生成动态日志文件-文件名根据时间自动生成
- 根据表生成流水号
- C++ 随机数,根据时间生成随机数,Srand 与Rand 产生随机数
- 根据开始时间结束时间,开始的经纬度结束的经纬度,按照一定的时间频率生成坐标点。
- 根据进程查找该进行的执行位置和完整执行指令和检查文件开始生成时间
- Fortran根据系统时间生成随机数
- 生成时间加流水号的编码
- C#--生成流水号---当前时间加随机数