There may be built-in methods for such things as "5 minutes ago" but I don't know any yet.
for the current time in human-readable form, using some default date display format (which may or may not be dependent on user-preferred locale and date format selection, this remains TBD for Android), the fastest way is: ""+new Date() and with a given time in millis, it would be as in: " Build.TIME "+Build.TIME+" = "+new Date(Build.TIME) Calendar is recommended for conversions (e.g., time zone changes) and for other calculations with dates, such add, after, before, compareTo. When you create a Calendar, it is already set to the current time: Calendar cal = Calendar.getInstance(); is usually equivalent and preferable to: long millis = System.currentTimeMillis(); //don't do these 4 statements Date date = new Date(millis); Calendar c = Calendar.getInstance(); c.setTime(date); And if you need to use SimpleDateFormat, because for example you don't want to use the default format you get from Date, then take special care because some implementations are not multithreaded, therefore unless you know for sure that Android's implementation is multithreaded, then don't cache the instance and use a local variable that only lives in the method, don't use a field. This makes SimpleDateFormat somewhat expansive to use but usually it is only used for some UI work (i.e., not background work), therefore using it may be OK for many apps. happy coding serge On Mar 8, 4:33 am, TAKEphONE <[email protected]> wrote: > Hi, > > Is there any internal method/object I can use to return a format > like the built-in call log does ? > > (i.e. "5 minutes ago", "2 days ago"...) > > On Mar 6, 2:55 pm, Tseng <[email protected]> wrote: > > > I wouldn't really use this method to be honest. Even the Android > > Documentation sugest to use native methods, instead of writing your > > own stuff for methods which are already available (i.e. simple date > > formating). > > > [Use Native > > Methods]http://developer.android.com/guide/practices/design/performance.html#... > > > On Mar 6, 1:20 pm, droozen <[email protected]> wrote: > > > > Sometimes I construct my human readable strings in a separate function > > > by myself, mostly because I imagine it's faster. Something like. > > > > int iMonth = cal.get(Calendar.MONTH) + 1; // Months from the calendar > > > are offset by one. Add one if you want human readable. > > > int iDay = cal.get(Calendar.DAY_OF_MONTH); > > > > String month = Integer.toString(iMonth); > > > if(iMonth < 10){ > > > month = "0" + month; // Otherwise, you might get something like > > > 1/1/1900, instead of 01/01/1900 > > > > } > > > > String day = Integer.toString(iDay); > > > if(iDay < 10){ > > > day = "0" + day; > > > > } > > > > String humanReadable = month + "/" + day + "/" cal.get(Calendar.YEAR); > > > > But really, you should be using SimpleDateFormat, I suppose... > > > > On Mar 6, 5:55 am, Łukasz Warchoł <[email protected]> wrote: > > > > - Show quoted text - --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Beginners" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-beginners?hl=en -~----------~----~----~----~------~----~------~--~---

