2011-11-08 63 views
9

在Java中執行此操作的最簡單方法是什麼?理想情況下,我將使用Unix時間以毫秒爲單位輸入該函數將輸出像在Unix中將Unix時間轉換爲可讀日期

2011年11月7日的String下午5:00

+1

你看着日曆?:http://download.oracle .com/javase/1.5.0/docs/api/java/util/Calendar.html –

+1

爲什麼你不用['SimpleDateFormat'](http://download.oracle.com/javase/7/docs /api/java/text/SimpleDateFormat.html)一段,讓我們知道如果/當你卡住了? –

回答

18
SimpleDateFormat sdf = new SimpleDateFormat("MMMM d, yyyy 'at' h:mm a"); 
String date = sdf.format(myTimestamp); 
+0

這個效果非常好,除非在'0'結束時,比如1:4​​0或5:20,0不會顯示。 – SeanPONeil

+0

對不起,試試h:mm而不是h:m – GoalieGuy6

+1

當我的時間戳是2015年1月份時,我得到了1970年1月份的輸出結果。乘以1000L的時間戳記可以做到這一點。 –

3

我想我unix_timestamps轉換像1372493313人類可讀格式如Jun 29 4:08。

以上回答幫助我瞭解我的Android應用代碼。有一點區別的是,在Android上它也推薦使用語言環境設置,我的原始unix_timestamp是秒,而不是毫秒,Eclipse想添加try/catch塊或拋出異常。所以我的工作代碼必須修改有點像這樣:

/** 
* 
* @param unix_timestamp 
* @return 
* @throws ParseException 
*/ 
private String unixToDate(String unix_timestamp) throws ParseException {  
    long timestamp = Long.parseLong(unix_timestamp) * 1000; 

    SimpleDateFormat sdf = new SimpleDateFormat("MMM d H:mm", Locale.CANADA); 
    String date = sdf.format(timestamp); 

    return date.toString(); 
} 

這裏是調用代碼:

String formatted_timestamp; 
try { 
     formatted_timestamp = unixToDate(unix_timestamp); // timestamp in seconds 
    } catch (ParseException e) { 
     e.printStackTrace(); 
    } 
0
java.util.Date date = new java.util.Date((long) time * 1000L); 

SimpleDateFormat simpleDateFormat = new SimpleDateFormat(pattern); 

simpleDateFormat.setTimeZone(TimeZone.getTimeZone("UTC")); 
相關問題