如何根據當前時間生成唯一編號

2021-07-04 20:34:37 字數 528 閱讀 4350

long   id=new   date().gettime(); 

是當前時間的唯一的編號……

system.currenttimemillis()   只是獲取當前的時間戳,單位是毫秒,但是這並不是唯一的. 

如果你在1毫秒中進行了兩次操作,那麼這兩個id就是相等的. 

問題的解決看你要求的精度如何了.一般可以使用當前的時間戳作為random發生器的種子. 

比如random   ran   =   new   random(system.currenttimemillis()); 

然後需要唯一id的時候使用ran.nextlong()獲取,實際上這樣的選擇還是看你對於id精度的要求.可以使用更加複雜的隨機演算法來產生,比如說產生一串隨機字串加上數字等等.

個人認為,以上問題可以分為資料庫是否設為併發操作和程式實際操作兩部分進行。

system.currenttimemillis(); 

用這個比較好些,重複機率比較小。 

不過實際開發中,編碼最好為資料庫資訊編號和時間共同組成好一些

PHP如何生成乙個唯一的訂單編號

下面是乙個生成唯一訂單的方法,這個方法是在某二開框架中擷取的,自認為比較有效好用,所以儲存下來,也在多次使用.生成計畫單號 public function createno table,prefix billno date ymdhis this random 6,true return prefi...

根據MAC生成唯一IP

冷勝魁 seaquester lengshengkui gmail.com 2009 5 15 mac2ip.sh bin sh if ne 1 then echo usage basename 0 exit 1 fi we need convert to uppercase,otherwise t...

Windows系統,bat根據當前時間生成檔名稱

rem 根據當前日期獲取,年月日串 set yyyy date 4 set mm date 5,2 set day date 8,2 set yyyymmdd yyyy mm day rem 把年月日串中的空格替換為0 set yyyymmdd yyyymmdd 0 echo yyyymmdd yy...