1. 程式人生 > >如何根據當前時間生成唯一編號

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

long   id=new   Date().getTime(); 
是當前時間的唯一的編號……


System.currentTimeMillis()   只是獲取當前的時間戳,單位是毫秒,但是這並不是唯一的. 
如果你在1毫秒中進行了兩次操作,那麼這兩個ID就是相等的. 
問題的解決看你要求的精度如何了.一般可以使用當前的時間戳作為Random發生器的種子. 
比如Random   ran   =   new   Random(System.currentTimeMillis()); 
然後需要唯一ID的時候使用ran.nextLong()獲取,實際上這樣的選擇還是看你對於ID精度的要求.可以使用更加複雜的隨機演算法來產生,比如說產生一串隨機字串加上數字等等.


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


System.currentTimeMillis(); 
用這個比較好些,重複機率比較小。 
不過實際開發中,編碼最好為資料庫資訊編號和時間共同組成好一些