2011-04-12 51 views

回答

4

試試這個:

public static void main(String[] args) throws Exception { 
    DateFormat format = new SimpleDateFormat("HH:mm:ss a"); 
    format.setTimeZone(TimeZone.getTimeZone("UTC")); 
    for(String fracStr : args) { 
     double frac = Double.parseDouble(fracStr); 
     long day = (long) Math.floor(frac); 
     frac = frac - day; 
     Date time = new Date((long) (86400000l * frac)); 
     System.out.println(fracStr+" -> "+format.format(time)); 
    } 
} 

稍微注意一下這裏 - GMT時區可能不會得到你所期望的結果,但會UTC。這是因爲Java將GMT視爲歐洲/倫敦的有效縮寫,在1968年至1972年期間,倫敦一直處於永久夏令時。 1970年1月1日凌晨1點(格林威治標準時間)也是1970年1月1日凌晨1點(格林威治標準時間)。

相關問題