0

I have a date that has the format:

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

I'd like to convert it to something similar to:

"3 minutes ago"

How can I go about doing this?

Sheehan Alam
  • 60,111
  • 124
  • 355
  • 556
  • Duplicate of [How can I calculate a time span in Java and format the output?](http://stackoverflow.com/questions/635935/how-can-i-calculate-a-time-span-in-java-and-format-the-output) – BalusC Nov 20 '10 at 21:18

3 Answers3

1

See this SO question:

Community
  • 1
  • 1
icyrock.com
  • 27,952
  • 4
  • 66
  • 85
0

Ugly, but does the trick.. and yes, a duplicate! :(

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);
}
dacwe
  • 43,066
  • 12
  • 116
  • 140
0

For oarsing the date, check How to parse a date? For displaying it in a nicer format, check for PrettyTime.

Community
  • 1
  • 1
Pablo Grisafi
  • 5,039
  • 1
  • 19
  • 29