在java中生成唯一的事务代码/引用

时间:2016-06-21 09:41:16

标签: java spring payment uniqueidentifier

想要生成独特的交易代码/参考,例如" 2016100000223433"在java中。

要求,

  1. 人类可读(不太长)
  2. 使用时间,年份,日期
  3. 在数据库表中使用主键(可选)
  4. 独特
  5. java中有哪些方法可以使用?

    在获得其他想法后创建了这种机制。这适合这个问题吗?

    import java.util.Date;
    import java.util.Calendar;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.text.DateFormat;
    import java.util.TimeZone;
    import java.util.Random;
    
    public class Transaction {
    
    public static void main(String args[]) {
    
                DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                Date date  = new Date();
                try {
                  Thread.sleep(1);                 
                } catch(InterruptedException ex) {
                    Thread.currentThread().interrupt();
                }
    
    
                Calendar requestCal = Calendar.getInstance();
                requestCal.setTime(date);
    
                String newOne = requestCal.getWeekYear() + "" + String.format("%15s", requestCal.getTimeInMillis()+"").replace(' ', '0');
    
                System.out.println(newOne);                
    
        }
    }
    

0 个答案:

没有答案