0
В моем приложении я получаю опубликованную дату содержимого и показываю его в формате MMM,dd
.Отображение различных форматов дат в приложении на основе даты сравнения
Он работает очень хорошо, но теперь я хочу показать формат даты на основе опубликованной даты.
- Если опубликованная дата сегодня, я хочу, чтобы показать дату в 24' часового формата (как
19:45
) - Если опубликованная дата с 7 дней, я хочу, чтобы показать день недели и Время (
Sunday, 14:30
) - В противном случае необходимо показать
MM/dd/yyyy HH:mm:ss
.
Для этого я попробовал этот код:
public static String formateDate(String inputDate)
{
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String lDate = null;
Date date = new Date();
SimpleDateFormat dateFormater =null;
try
{
date = dateFormat.parse(inputDate);
Log.d("debug", "Published Date" + date);
int comparision=diff(date);
Log.d("debug", "Date Comparision" + comparision);
if(comparision==0)
{
dateFormater = new SimpleDateFormat("kk:mm");
}
else if(comparision>0 && comparision<=7)
{
dateFormater = new SimpleDateFormat("EEEE kk:mm");
}
else if(comparision > 7)
{
dateFormater = new SimpleDateFormat("MMM.dd.yyyy kk:mm");
}
//dateFormater = new SimpleDateFormat("MMM,dd");
lDate = dateFormater.format(date);
}
catch(Exception e)
{
e.printStackTrace();
}
return lDate;
}
Здесь я подсчитывая разницу между днями
public static int diff(Date date1)
{
Calendar c1 = Calendar.getInstance();
Calendar c2 = Calendar.getInstance();
Date todayDate=new Date();
c1.setTime(date1);
c2.setTime(todayDate);
int diffDay = 0;
if(c1.before(c2))
{
diffDay = countDiffDay(c1,
c2);
}
else
{
diffDay = countDiffDay(c2,
c1);
}
return diffDay;
}
Таким образом, я в состоянии получить как-то, что я ожидал. Но я думаю, что есть приемлемый подход, а не этот. Может ли кто-нибудь указать мне на это?