DOM パーサーを使用してこの XML フィードを解析しています: http://loc.grupolusofona.pt/index.php/?format=feed
必要なすべてのフィールドを解析して正常に動作していますが、タグ pubDate から取得した結果を「2012 年 10 月 31 日水曜日 17:12:42 +0000」から「2 日前、17:12」などに変換したかったのです。このような。
どうすればできますか?
前もって感謝します。
DOM パーサーを使用してこの XML フィードを解析しています: http://loc.grupolusofona.pt/index.php/?format=feed
必要なすべてのフィールドを解析して正常に動作していますが、タグ pubDate から取得した結果を「2012 年 10 月 31 日水曜日 17:12:42 +0000」から「2 日前、17:12」などに変換したかったのです。このような。
どうすればできますか?
前もって感謝します。
必要なコードは次のとおりです。
String dateString = "Wed, 31 Oct 2012 12:12:42 +0100";
SimpleDateFormat sdf = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z", Locale.US);
Date date = null;
try {
date = sdf.parse(dateString);
String timeOfDay = new SimpleDateFormat("HH:mm").format(date);
java.sql.Timestamp timeStampDate = new Timestamp(date.getTime());
java.sql.Timestamp timeStampNow = new Timestamp((new java.util.Date()).getTime());
long secondDiff = timeStampNow.getTime() / 1000 - timeStampDate.getTime() / 1000;
int minuteDiff = (int) (secondDiff / 60);
int hourDiff = (int) (secondDiff / 3600);
int dayDiff = daysBetween(date, new Date()) - 1;
if (dayDiff > 0) {
System.out.println("Posted " + dayDiff + " days ago @ " + timeOfDay);
} else if (hourDiff > 0) {
System.out.println("Posted " + hourDiff + " hour(s) ago @ " + timeOfDay);
} else if (minuteDiff > 0) {
System.out.println("Posted " + minuteDiff + " minute(s) ago @ " + timeOfDay);
} else if (secondDiff > 0) {
System.out.println("Posted " + secondDiff + " second(s) ago @ " + timeOfDay);
}
} catch (ParseException e) {
e.printStackTrace();
}
日間:
public static int daysBetween(Date startDate, Date endDate) {
int daysBetween = 0;
while (startDate.before(endDate)) {
startDate.setTime(startDate.getTime() + 86400000);
daysBetween++;
}
return daysBetween;
}
出力:2日前に投稿@ 12:12