2012-11-02 35 views
0

IM:http://loc.grupolusofona.pt/index.php/?format=feedAndroid的DOM解析 - 轉換pubdate的標籤使用DOM解析器解析這個XML飼料

它的正常工作,分析我需要的所有領域,但我想轉換結果從標籤pubdate的得到了來自「星期三,2012年10月31日17:12:42 +0000「到」2天前,在17:12「或類似的東西。

我該怎麼辦?

在此先感謝。

+0

你試過? –

+0

我一直在嘗試Joda時間,但沒有成功..然而基督徒的解決方案讓我走上正軌,感謝:) – jsfrocha

回答

2

這裏是你需要的代碼:

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(); 
} 

daysBetween:

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分

+0

完美!好吧,差不多,不知道爲什麼你在計算daysBetween時將-1設爲-1,我把它拿走並且工作正常:) – jsfrocha