1 public static void showTime() { 2 long storedSec = -1; 3 while (true) { 4 long time = System.currentTimeMillis(); 5 time /= 1000; 6 long sec = time % 60; 7 if (sec == storedSec) 8 continue; 9 storedSec = sec; 10 time /= 60; 11 long min = time % 60; 12 time /= 60; 13 long hour = time % 24; 14 System.out.printf("%d:%d:%d ", hour, min, sec); 15 } 16 }
显示结果:
13:49:59
我是死命思考啊,它怎么小时数就不对呢,明明分钟和秒都对啊。
毫秒除一千是总秒数,秒数除六十是总分数,分数除六十是总小时数,小时数模二十四就应该是当前小时呀。
想了beyond有二十分钟来着,后来我一翻书,突然就灵光一闪。
麻痹格林尼治时间。
正确答案在此。再也不干这么蛋疼的事了。
1 /** Show current time. */ 2 public static void showTime() { 3 long storedSec = -1; 4 while (true) { 5 long time = System.currentTimeMillis(); 6 time /= 1000; 7 long sec = time % 60; 8 if (sec == storedSec) 9 continue; 10 storedSec = sec; 11 time /= 60; 12 long min = time % 60; 13 time /= 60; 14 long hour = time % 24 + 8; 15 System.out.printf("%d:%d:%d ", hour, min, sec); 16 } 17 }