据时间生成唯一序列ID
据时间生成唯一序列ID
/** * <html> * <body> * <P> Copyright 1994 JsonInternational</p> * <p> All rights reserved.</p> * <p> Created on 19941115</p> * <p> Created by Jason</p> * </body> * </html> */ package cn.ucaner.alpaca.framework.utils.sequence; import java.text.DecimalFormat; import java.text.FieldPosition; import java.text.Format; import java.text.NumberFormat; import java.text.SimpleDateFormat; import java.util.Calendar; /** * @Package:cn.ucaner.common.utils.sequence * @ClassName:GenerateSequenceUtil * @Description: <p> 根据时间生成唯一序列ID<br> * 时间精确到秒,ID最大值为99999且循环使用</p> * @Author: - Jason * @CreatTime:2017年10月26日 上午10:44:23 * @Modify By: * @ModifyTime: * @Modify marker: * @version V1.0 */ public class GenerateSequenceUtil { /** * */ private static final FieldPosition HELPER_POSITION = new FieldPosition(0); /** 时间:精确到秒 */ private final static Format dateFormat = new SimpleDateFormat("YYYYMMddHHmmss"); private final static NumberFormat numberFormat = new DecimalFormat("00000"); private static int seq = 0; private static final int MAX = 99999; public static synchronized String generateSequenceNo() { Calendar rightNow = Calendar.getInstance(); StringBuffer sb = new StringBuffer(); dateFormat.format(rightNow.getTime(), sb, HELPER_POSITION); numberFormat.format(seq, sb, HELPER_POSITION); if (seq == MAX) { seq = 0; } else { seq++; } return sb.toString(); } }
--------------------------------------
勿忘初心 方得始终
--------------------------------------