「created_time」フィールドを UNIX タイムスタンプとして返す FQL を使用して、Facebook API からニュースフィードを取得しています。私はそれを、次のコードを使用して ISO-8601 タイムスタンプであると信じているものに変換しています。
String getInitialCreatedTime = JOFeeds.getString("created_time");
long finalTimeStamp = Long.valueOf(getInitialCreatedTime);
SimpleDateFormat dateFormatter = new SimpleDateFormat("yyyy-MM-dd'T'hh:mm:ssZ");
String finalCreatedTime = dateFormatter.format(new Date(finalTimeStamp * 1000L));
ここで、文字列からfinalCreatedTime
時刻だけを 12 時間 (AM/PM) 形式で抽出したいと思います。
その趣旨で、私はこのコードを使用しています:
final String old_format = "yyyy-MM-dd'T'HH:mm:ssZ";
final String new_format = "EEE MMM d hh:mm aa yyyy";
String oldDateSring = finalCreatedTime;
SimpleDateFormat sdf = new SimpleDateFormat(old_format);
Date d = sdf.parse(oldDateSring);
sdf.applyPattern(new_format);
Calendar cal = Calendar.getInstance();
cal.setTime(d);
と:
// GET THE TIME
SimpleDateFormat sdfTimeFormatter = new SimpleDateFormat("hh:mm aa");
String getTime = sdfTimeFormatter.format(cal.getTime());
feeds.setTime(getTime);
Log.e("TIME", getTime);
最初のコード ブロックの結果は次のとおりです。2012-12-14T04:30:03+0530
そして、// GET THE TIME
ブロックからの結果は04:30AM
、あるべきとき04:30PM
です。
これに関する指針をいただければ幸いです。おそらく、私はそれを間違って実装していますか?
編集: 12.00 PM から 1.00 PM の間に入るタイムスタンプは適切に処理され、PM が適切に表示されることを追加する場合があります。