簡單介紹訂單號或者流水號的生成方法
阿新 • • 發佈:2018-12-12
一般訂單號或者流水號等可能在一些平臺會用到,然後我就簡單的介紹一個我自己生成訂單號和流水號的一個方法吧,如果程式有問題或者你有更好的生成辦法,歡迎留言,留下你的文章連結,我們一起學習和進步哈。
方法簡介:
一般訂單號或者流水號的生成,是時間戳+隨機數(或者自己寫的演算法生成),或者是時間戳+訂單型別+隨機數
比如在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位隨機生成
完整程式碼可以下載:
參考文章:
感謝原作者的分享,讓技術人能夠更快的解決問題