2010-11-20 3 views
0

J'ai une date qui a le format:Comment puis-je formater cette date?

"yyyy-MM-dd'T'HH:mm:ss'Z'" 

J'aimerais le convertir en quelque chose de similaire à:

"il y a 3 minutes"

Comment puis-je faire de manière ?

+0

en double de [Comment puis-je calculer un laps de temps en Java et formater la sortie?] (http://stackoverflow.com/questions/635935/how-can-i-calculate-a-time-span-in-java-and-format-the-output) – BalusC

Répondre

1

laid, mais le tour est joué .. et oui, un double! :(

public static void main(String[] args) { 
    Calendar c = Calendar.getInstance(); 
    c.set(2010, 10, 20, 22, 37, 12); 

    Date start = c.getTime(); 

    Date end = new Date(); 


    long diff = (end.getTime() - start.getTime())/1000; 

    long days = diff/(60 * 60 * 24); 
    long hours = diff/(60 * 60) - days * 24; 
    long minutes = diff/60 - (hours * 60 + days * 24 * 60); 
    long seconds = diff % 60; 

    String output = ""; 
    if (days >= 1) 
     output += days + " day" + ((days > 1) ? "s" : ""); 

    if (hours >= 1) 
     output += " " + hours + " hour" + ((hours > 1) ? "s" : ""); 

    if (minutes >= 1) 
     output += " " + minutes + " minute" + ((minutes > 1) ? "s" : ""); 

    if (seconds >= 1) 
     output += " " + seconds + " second" + ((seconds > 1) ? "s" : ""); 

    output = output.trim(); 

    System.out.println(output); 
} 
Questions connexes