什么意思?
long id=new Date().getTime();
是当前时间的唯一的编号……

解决方案 »

  1.   

    java.util.Date now=new java.util.Date();
    String id = String.valueOf(now.getTime());
    跟楼上意思一样
      

  2.   

    这个好像不是唯一的。我正在做建树的javabean,为了唯一标识节点,所以给节点生成ID。我用
    long id=new Date().getTime();
    发现在很短得时间间隔内生成的两个节点id相同。如何解决,谢谢!
      

  3.   

    好象有一个取微秒时间的,我忘了是怎么做的。或者呢,好象有一个取unique的函数吧。再就是自己写一个生成随机数的小函数,产生一个数,如果已经有了根据一定规则产生修正。
      

  4.   

    System.currentTimeMillis() 只是获取当前的时间戳,单位是毫秒,但是这并不是唯一的.
    如果你在1毫秒中进行了两次操作,那么这两个ID就是相等的.
    问题的解决看你要求的精度如何了.一般可以使用当前的时间戳作为Random发生器的种子.
    比如Random ran = new Random(System.currentTimeMillis());
    然后需要唯一ID的时候使用ran.nextLong()获取,实际上这样的选择还是看你对于ID精度的要求.可以使用更加复杂的随机算法来产生,比如说产生一串随机字符串加上数字等等.
      

  5.   

    楼主是想要这个呀,可以
    long id=new Date().getTime();
    long buf=id;
    id=new Date().getTime();
    while(id==buf) {
      id=new Date().getTime();
    }
    buf=id;
      

  6.   

    System.currentTimeMillis();
    用这个比较好些,重复几率比较小。
    不过实际开发中,编码最好为数据库信息编号和时间共同组成好一些