1. 程式人生 > >簡單介紹訂單號或者流水號的生成方法

簡單介紹訂單號或者流水號的生成方法

一般訂單號或者流水號等可能在一些平臺會用到,然後我就簡單的介紹一個我自己生成訂單號和流水號的一個方法吧,如果程式有問題或者你有更好的生成辦法,歡迎留言,留下你的文章連結,我們一起學習和進步哈。

方法簡介:

一般訂單號或者流水號的生成,是時間戳+隨機數(或者自己寫的演算法生成),或者是時間戳+訂單型別+隨機數

比如在A平臺付款的,訂單型別就是0001,B平臺付款的就是0002,總之可以自己想怎麼定義就怎麼定義,

這裡我介紹的是時間戳包括秒(14位)+隨機6位數

時間戳生成方法:

這裡就不多解釋了,相信你寫的專案都會用到生成時間的

    /**
     * 獲取YYYY-MM-DD HH:mm:ss格式
     * @return
     */
    public static String getTime() {
        SimpleDateFormat sdfTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        System.out.println("時間戳:"+sdfTime.format(new Date()));
        return sdfTime.format(new Date());
    }

但是生成的時間是xxxx-xx-xx xx:xx:xx帶 - 和 冒號的,我們要把它去掉,相信去掉的方法有很多,我這裡用的是正則去掉的

getTime().replaceAll("[[\\s-:punct:]]", "")

隨機6位數生成方法:

這裡用到的是java.util.Random類 的Random()方法的nextInt()方法,

講到這裡,就得講一下 java.lang.Math 類 的Math.random() 方法

區別和聯絡,其實這兩個都是能夠生成隨機數的,

java.util.Random類中的nextXxxx系列方法生成0-n的隨機數;

Math.random() 方法生成[0, 1)範圍內的double型別隨機數,如果要生成[0,n)範圍的,只要乘一個 (n-1)就可以啦

    /**
     * 隨機生成六位數驗證碼
     * @return
     */
    public static int getRandomNum(){
        Random r = new Random();
        return r.nextInt(900000)+100000;//(int)(Math.random()*999999)
    }

生成訂單號如圖所示

前面14位是時間,後面6位隨機生成

完整程式碼可以下載:

參考文章:

感謝原作者的分享,讓技術人能夠更快的解決問題