在這段代碼數據(時間戳).toLocaleString始終返回當前日期
long timestamp=1332782463298;
Date d=new Date(timestamp);
date=d.toLocaleString();
date
始終是當前的日期。我的錯誤在哪裏?
我也試過SimpleDateFormat的,但它仍返回當前日期:
date=new SimpleDateFormat("MM.dd.yyyy").format(d);
在這段代碼數據(時間戳).toLocaleString始終返回當前日期
long timestamp=1332782463298;
Date d=new Date(timestamp);
date=d.toLocaleString();
date
始終是當前的日期。我的錯誤在哪裏?
我也試過SimpleDateFormat的,但它仍返回當前日期:
date=new SimpleDateFormat("MM.dd.yyyy").format(d);
這個時間戳記是爲2012年3月26日(17:21:03.298 UTC,要準確)。嘗試適當不同的時間戳記(例如1332482563298L),你會得到一個不同的日期......你真不該使用toLocaleString
反正
注 - SimpleDateFormat
是要走的路(或Joda Time如果可能的話)。您可能還想考慮您感興趣的時區。
對不起,但您明白long timestamp=1332782463298;
是什麼?從1970年1月1日起,這是一個以毫秒爲單位的UNIX時間戳,如果保持不變,date
將始終包含相同的時間。
是的,我明白了。它是從服務器返回的值。看起來這是服務器程序員的錯。 – 2012-03-26 17:38:08
使用日曆來代替:
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(1332782463298);
Date d = cal.getTime();
String current = SimpleDateFormat("MM.dd.yyyy").format(cal.getTime()).toString();
但這個網站將其轉化爲匹配12 http://www.onlineconversion.com/unix_time.htm – 2012-03-26 17:33:05
@biovamp:這將其轉換爲3月12日** ** 44204因爲它假設(好,陳述)自Unix紀元以來,輸入值是*秒*,而自從Unix紀元以來,Date值是*毫秒*。 – 2012-03-26 17:34:48
對不起,現在我明白了。謝謝) – 2012-03-26 17:38:35