JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Java 新手區  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to postflat modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 Re:java Date 設定毫秒問題 [Re:latitude06]
jimwayne





發文: 220
積分: 0
於 2014-01-13 16:46 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
latitude06 wrote:
那要如何才能把 8 拿掉 ?

本來想嘗試 再放入 Value 之前把小時設定為零

但是想了一下也不對

再去 setTimeInMillis 他還是會有同樣的問題 ....


比如說以下的程式碼:
1
2
3
4
5
6
7
8
9
10
TimeZone zone = TimeZone.getTimeZone("Europe/Moscow");
    
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss dd/MM/yyyy");
sdf.setTimeZone(zone);
    
Calendar calendar = Calendar.getInstance();    
calendar.setTimeInMillis(0);
 
System.out.println("Calendar output: " + calendar.getTime().toString()); 
System.out.println("SimpleDateFormat output: " + sdf.format(calendar.getTime()));


實際執行時會出現對初學者來說很奇怪的結果:
1
2
Calendar output: Thu Jan 01 08:00:00 CST 1970
SimpleDateFormat output: 03:00:00 01/01/1970


因為在上面的程式碼中,有對 SimpleDateFormat 做時區設定,強迫指定輸出時的時區要以歐洲莫斯科的時間為準
但 Calendar 沒有做特別的指定,所以 Calender 使用 JVM 預設的時區,也就是台灣的時區
因此直接用 Calendar 輸出時,Calender 顯示出來的時間是 1970/1/1 上午 8 點
但改用 SimpleDateFormat 去輸出時,顯示出來的時間卻變成 1970/1/1 上午 3 點
實際上這兩個時間是同一個時間。

不過針對樓主的問題,個人是覺得....樓主應該要先審視一下,您為什麼需要顯示的時間是 0:0:0 吧?
因為設定微秒為 0 時,顯示出來台灣時間 1970 年 1 月 1 日上午 8 點是完全正確的時間
如果強制改成上午 0 點,以台灣來說是錯的~。
因此真正要解決問題,您應該描述一下您的時間是要用來做什麼的?


jimwayne edited on 2014-01-13 16:54
reply to postreply to post
Java 工作者,但仍然是個初心者.....
話題樹型展開
人氣 標題 作者 字數 發文時間
2982 java Date 設定毫秒問題 latitude06 521 2014-01-13 12:24
2889 Re:java Date 設定毫秒問題 sir_ap 272 2014-01-13 13:24
2859 Re:java Date 設定毫秒問題 latitude06 187 2014-01-13 14:27
2799 Re:java Date 設定毫秒問題 bluewingsky 242 2014-01-13 17:03
2775 Re:java Date 設定毫秒問題 latitude06 357 2014-01-13 17:12
2775 Re:java Date 設定毫秒問題 estrelas 141 2014-01-13 17:37
2683 Re:java Date 設定毫秒問題 sir_ap 66 2014-01-14 14:13
2870 Re:java Date 設定毫秒問題 jimwayne 103 2014-01-13 13:52
2827 Re:java Date 設定毫秒問題 latitude06 95 2014-01-13 14:25
2820 Re:java Date 設定毫秒問題 jimwayne 1109 2014-01-13 16:46
2788 Re:java Date 設定毫秒問題 latitude06 1359 2014-01-13 17:04
2775 Re:java Date 設定毫秒問題 jimwayne 677 2014-01-13 17:27
2749 Re:java Date 設定毫秒問題 latitude06 337 2014-01-13 18:28
2642 Re:java Date 設定毫秒問題 bluewingsky 471 2014-01-15 18:08
2653 Re:java Date 設定毫秒問題 latitude06 17 2014-01-16 10:04
2771 Re:java Date 設定毫秒問題 roytsang 720 2014-01-13 17:35
2763 Re:java Date 設定毫秒問題 jimwayne 345 2014-01-13 17:38
» JWorld@TW »  Java 新手區

reply to postflat modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8