2015-06-15 3 views
0

В моем приложении я получаю опубликованную дату содержимого и показываю его в формате MMM,dd.Отображение различных форматов дат в приложении на основе даты сравнения

Он работает очень хорошо, но теперь я хочу показать формат даты на основе опубликованной даты.

  1. Если опубликованная дата сегодня, я хочу, чтобы показать дату в 24' часового формата (как 19:45)
  2. Если опубликованная дата с 7 дней, я хочу, чтобы показать день недели и Время (Sunday, 14:30)
  3. В противном случае необходимо показать 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; 
    } 

Таким образом, я в состоянии получить как-то, что я ожидал. Но я думаю, что есть приемлемый подход, а не этот. Может ли кто-нибудь указать мне на это?

ответ

0
long currtime= System.currentTimeMillis(); 
Calendar calander = Calendar.getInstance(); 
calander .setTimeInMillis(currtime); 

SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm:ss a"); 
//above line of SDF will give you output in 24 hour format 
String dateforrow = dateFormat.format(calander.getTime()); 

SimpleDateFormat dateFormat2 = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss a"); 
//above line of SDF will give you output in 12 hour format 

String dateforrow2 = dateFormat2.format(calander.getTime()); 
Смежные вопросы