2011-11-08 8 views
9

Javaでこれを行う最も簡単な方法は何ですか?理想的には私は、入力とUnixの時刻をJavaの読み込み可能な日付に変換する

11月7日、2011年のような文字列5:00 PM

+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:40や5:20など)では0は表示されません。 – SeanPONeil

+0

申し訳ありません、hの代わりにh:mmを試してください:m – GoalieGuy6

+1

私のタイムスタンプが2015年1月だったら、出力としてjan 1970を取得していました。 –

3

で、私は人間が読めるに1372493313のように私のunix_timestampsを変換したい機能の意志出力としてミリ秒単位でUnixの時間を使用することになります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")); 
関連する問題