如何获取当前时间是否是凌晨两点整。要毫秒都一致,当前在写一个webservice。要求是每天早晨两点整执行一次。每天仅此一次。求大神告之

解决方案 »

  1.   

    不行,JVM本身就已经无法保证毫秒级的精度。
    如果不是工业精确控制啥的,建议不要纠结于此,精确到秒级就行了。可以自己写线程,定时检查当前时间。也可以借助 Quartz 组件,定义好时间表达式就行了。
      

  2.   

    用 timer计时器 吧 
      

  3.   

    Calendar galendar=Calendar.getInstance();
    int year=galendar.get(Calendar.YEAR);
    int month=galendar.get(Calendar.MONTH);
    int day=galendar.get(Calendar.DAY_OF_MONTH);
    int hour=galendar.get(Calendar.HOUR_OF_DAY);
    int minute=galendar.get(Calendar.MINUTE);
    int second=galendar.get(Calendar.SECOND);
    int millisecond=galendar.get(Calendar.MILLISECOND);

    String sql = "";
    if(hour==2&&minute==0&&second==0&&millisecond==0){                    }
    这样行不?
      

  4.   

    甭想了,普通的计算机操作系统的计时精度不分在 20ms 以下,也就是说 20ms 以下的计时都是不精确的。
      

  5.   


    程序逻辑没有问题,但你这个程序能运行成功的概率很低。我就这么说吧,你不间断的连续执行两次:
      System.out.println(Calendar.getInstance().get(Calendar.MILLISECOND));
      System.out.println(Calendar.getInstance().get(Calendar.MILLISECOND));第一次得到的可能是:998,第二次得到的可能就是 13。总的来说你想得到 0,概率很低。
      

  6.   

    这要看机器的性能,即CPU时间。普通PC是无法满足你的需求的。
      

  7.   

    PC的话,不可能,人家windows系统都做不到,再进一步说,UTC时间那个都不能保证,还有闰秒这一说,除非你去弄一个原子钟