據時間生成唯一序列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();
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM