Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

"Time Since/Ago" Library for Android/Java [closed]

Tags:

android

Any suggestions for a good library for Android/Java to display time since?

(e.g. 10 minutes ago, 5 days ago)

like image 690
dannyroa Avatar asked Oct 22 '12 19:10

dannyroa


2 Answers

From the Google I/O 2012 App:

/*  * Copyright 2012 Google Inc.  *  * Licensed under the Apache License, Version 2.0 (the "License");  * you may not use this file except in compliance with the License.  * You may obtain a copy of the License at  *  *      http://www.apache.org/licenses/LICENSE-2.0  *  * Unless required by applicable law or agreed to in writing, software  * distributed under the License is distributed on an "AS IS" BASIS,  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.  * See the License for the specific language governing permissions and  * limitations under the License.  */  private static final int SECOND_MILLIS = 1000; private static final int MINUTE_MILLIS = 60 * SECOND_MILLIS; private static final int HOUR_MILLIS = 60 * MINUTE_MILLIS; private static final int DAY_MILLIS = 24 * HOUR_MILLIS;   public static String getTimeAgo(long time, Context ctx) {     if (time < 1000000000000L) {         // if timestamp given in seconds, convert to millis         time *= 1000;     }      long now = getCurrentTime(ctx);     if (time > now || time <= 0) {         return null;     }      // TODO: localize     final long diff = now - time;     if (diff < MINUTE_MILLIS) {         return "just now";     } else if (diff < 2 * MINUTE_MILLIS) {         return "a minute ago";     } else if (diff < 50 * MINUTE_MILLIS) {         return diff / MINUTE_MILLIS + " minutes ago";     } else if (diff < 90 * MINUTE_MILLIS) {         return "an hour ago";     } else if (diff < 24 * HOUR_MILLIS) {         return diff / HOUR_MILLIS + " hours ago";     } else if (diff < 48 * HOUR_MILLIS) {         return "yesterday";     } else {         return diff / DAY_MILLIS + " days ago";     } } 
like image 107
kaderud Avatar answered Oct 09 '22 08:10

kaderud


Check out DateUtils.getRelativeTimeSpanString(), it's been around since API level 3.

like image 37
wsanville Avatar answered Oct 09 '22 06:10

wsanville