Thanks Steven! I will try that.
As Date.getHours() etc. methods are mentioned as deprecated. I will check
with Calendar class as well if it is still faster than DateFormat.

Thierry.


2011/10/14 Studio LFP <studio....@gmail.com>

> It is slow and so is String.format(). I've been messing around with it a
> bit and here is a *rough *sample I tested:
>
> private static final String DATE_AM_PM[] = { "am", "pm" };
> private static Date dFormat = new Date();
> private static int iHour, iAMPM;
>
> public static String formatDate( long lTimestamp )
> {
> dFormat.setTime( lTimestamp );
> iHour = dFormat.getHours();
>
> if( iHour == 0 ) { iHour = 12; iAMPM = 0; }
> if( iHour == 12 ) { iAMPM = 1; }
> else if( iHour > 0 && iHour < 11 ) { iAMPM = 0; }
> else if( iHour > 12 && iHour < 24 ) { iHour -= 12; iAMPM = 1; }
>
> return dFormat.getMonth() + "/" + dFormat.getDay() + "/" +
> (dFormat.getYear() + 1900) + " " + iHour + ":" + dFormat.getMinutes() +
> DATE_AM_PM[ iAMPM ];
> }
>
> As I said, it is rough and doesn't even format the output fully.
>
> I tossed this in my application and used it a bit for a speed test and this
> takes up half the time as the formatting routines do. Funny thing is, it has
> nothing to do with the date part. It seems the formatters are using a
> StringBuffer and some replace functions in the StringBuffer and that is what
> is slowing it down.  I may try to work up a JNI replacement and see if some
> sprintf or fprintf action fix the issue but it may not because of the extra
> layer.
>
> Steven
> Studio LFP
> http://www.studio-lfp.com
>
>
>
> On Thursday, October 13, 2011 4:26:32 PM UTC-5, tlegras wrote:
>>
>> Hi,
>>
>> I am optimizing the critical parts of my code, and I coming to some
>> ResourceCursorAdapter bindView method.
>> Though the method is quite long, I saw on traceview that only 2 lines are
>> taking 40% of the time in traceview; those are call to DateFormat:
>>
>> ((TextView)view.findViewById(**R.id.EPG_list_item_hour)).**setText(
>>     android.text.format.**DateFormat.format("kk:mm",**beginTimeMilli) + "
>> - " +
>>     android.text.format.**DateFormat.format("kk:mm",**endTimeMilli));
>>
>>
>> So just curious: Is there any more efficient way to transform a
>> "timeMillisecond" time to a date string (in my case hour/minute)?
>>
>> Thierry.
>>
>  --
> You received this message because you are subscribed to the Google
> Groups "Android Developers" group.
> To post to this group, send email to android-developers@googlegroups.com
> To unsubscribe from this group, send email to
> android-developers+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/android-developers?hl=en
>



-- 
Thierry.

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to