function juid()
{
return((new Date().getTime()*10000+Math.random(1)*10000).toString(32)+(new Date().getTime()*10000+Math.random(1)*10000).toString(32)).substr(0,11)
}

解决方案 »

  1.   

    不知道是不是这个意思~!public class Test {    public static void main(String[] args) {        Date date1 = new Date();
            long time1 = date1.getTime() * 10000;
            double ran1 = Math.random() * 10000;
            String firstString = Double.toString(time1 + ran1);
            System.out.println(firstString);        Date date2 = new Date();
            long time2 = date2.getTime() * 10000;
            double ran2 = Math.random() * 10000;
            String secondString = Double.toString(time2 + ran2);
            System.out.println(secondString);        String finalString = firstString + secondString;
            System.out.println(finalString.substring(0, 11));    }
    }
    但是有一点不明,你将两个32位长的字符串组合在一起
    最后只截取前11位,那么你的第二个字符串起什么作用呢??
      

  2.   


    public static void main(String[] args) {
    // TODO Auto-generated method stub
    Random rd = new Random();
            System.out.println((Long.toString(new Date().getTime()*10000+rd.nextInt(1)*10000,32)+Long.toString(new Date().getTime()*10000+rd.nextInt(1)*10000,32)).substring(0,11));
    }
      

  3.   

    new Date().getTime() =》 System.currentMillions()
    Math.random(1) => rd.nextInt(1)
    substr =》 substring()
    基本就这3个
      

  4.   

    主要就是javascript的new Date().getTime().toString(32)等价于Long.toString(new Date().getTime(),32);//把长整行转成32位进制的字符串