This is my SimpleDateFormat
instance:
public static final SimpleDateFormat DD_MMM_YYYY =
new SimpleDateFormat("dd MMM yyyy");
I'm converting timestamps in milliseconds to this date format.
Sometimes it returns the correct date like:
22 Feb 2018
But sometimes (in rare cases) it returns an incorrect date like:
0022 Feb 2018
Why is it adding two leading zeros?
My method is below-
public static String convertLongToDate(long timestamp) {
Calendar calendar = Calendar.getInstance(TimeZone.getDefault());
long todaysTimestamp = calendar.getTimeInMillis();
calendar.add(Calendar.DAY_OF_YEAR, -1);
long yesterdayTimestamp = calendar.getTimeInMillis();
calendar.setTimeInMillis(timestamp);
String timeString;
String todaysDateStr = DD_MMM_YYYY.format(todaysTimestamp);
String givenDateStr = DD_MMM_YYYY.format(calendar.getTimeInMillis());
Log.d("Check", "date-> todaysDateStr=" + todaysDateStr + ", givenDateStr=" + givenDateStr+", todayLength="+todaysDateStr.length()+", givenLength="+givenDateStr.length());
if (todaysDateStr.equalsIgnoreCase(givenDateStr)) {
timeString = AppConstants.TODAY;
} else if (DD_MMM_YYYY.format(yesterdayTimestamp).equalsIgnoreCase(givenDateStr)) {
timeString = AppConstants.YESTERDAY;
} else {
timeString = givenDateStr;
}
timeString = timeString.trim();
return timeString;
}