这玩意我怎么看都看不出错可是它就是错了

 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     }
我们缺什么?智力!我们缺什么?智力!
原文地址:https://www.cnblogs.com/chihane/p/3442303.html