2016-09-26 2 views
0

Как преобразовать date в CharSequence. Я использовал для преобразования даты в строку. Но я получаю Exception.Как преобразовать даты

CharSequence timeAgo = DateUtils.getRelativeTimeSpanString(
      Long.parseLong(newsData.getNewsDateCreated()), 
      System.currentTimeMillis(), DateUtils.SECOND_IN_MILLIS); 

Как его правильно преобразовать? Мой удаленный сервер возвращает формат даты: 2016-9-26 - Я не хочу, чтобы это отображалось. С даты мне, наверное, нужно перевести его вовремя?

Выход должен дать мне так:

date

ответ

0

использовать данную

String uDate = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy").format(new Date()); 

здесь новый Date() является текущая дата

+0

Это выходной формат моего удаленного сервера, мне нужно его преобразовать следующим образом: http://stackoverflow.com/questions/19419374/android-convert-date-and-time-to-milliseconds – RoCk

+0

см. Отредактированный ответ – sajan

0
String resultDate = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy").format(new Date()); 
0

Во-первых, нам нужно для преобразования определенного формата в объект даты

Для например

String yourdate = "Tue Apr 23 16:08:28 GMT+05:30 2013"; 
SimpleDateFormat dateFormat = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy"); 
Date mDate = dateFormat.parse(yourdate); 

Здесь я подготовил функцию, которая поможет вам преобразовать дату в гольцов

public static String getTimeDifference(long mActual){ 

    long mCurrent=0; 
    int diffInDays=0; 

     mCurrent = System.currentTimeMillis(); 

     if (mCurrent == 0 || mActual == 0) 
      return ""; 

     long diff = mCurrent - mActual; 

     diffInDays = (int) (diff/(1000 * 60 * 60 * 24)); 

    if (diffInDays > 0) { 

      return diffInDays + "days ago"; 

     } else { 

      int diffHours = (int) (diff/(60 * 60 * 1000)); 
      if (diffHours > 0) { 
       return diffHours + "hours ago"; 
      } else { 

       int diffMinutes = (int) ((diff/(60 * 1000) % 60)); 
       if(diffMinutes == 0) 
        return "Just Now"; 
       return diffMinutes + "minutes ago"; 
      } 
     } 

} 

Так вот вы идете:

getTimeDifference(mDate.getTime); 
+0

Я попробую. – RoCk

+0

Почему '(длинный ток)' - 'long'? – RoCk

+0

По мере прохождения mDate.getTime(), которое равно миллисекундам. поэтому тип данных длинный. и это легко сравнить с currentTime в миллисекундах. – Jai

0

вы можете использовать ниже код

String str_date = "2014-11-26"; 

SimpleDateFormat readFormat = new SimpleDateFormat("yyyy-mm-dd"); 
SimpleDateFormat writeFormat = new SimpleDateFormat("MMM dd,yyyy"); 

java.util.Date date; 

date = readFormat.parse(str_date); 

и нужного формата даты Вы можете обратиться по этой ссылке тоже SimpleDateFormat

1
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); 

Date convertedDate = new Date(); 
Date currentDate = new Date(); 
try{ 
convertedDate = dateFormat.parse(newsData.getNewsDateCreated()); 
} 
      catch (ParseException e) 
      { 
       e.printStackTrace(); 
      } 

    public long getDifference(Date startDate, Date endDate){ 

     //milliseconds 
     long different = endDate.getTime() - startDate.getTime(); 

     long secondsInMilli = 1000; 
     long minutesInMilli = secondsInMilli * 60; 
     long hoursInMilli = minutesInMilli * 60; 
     long daysInMilli = hoursInMilli * 24; 

     return elapsedHours = different/hoursInMilli; 

    } 

Это должно сделать работу. Используйте getDifference (convertDate, currentDate) везде, где это необходимо, и используйте часы/час соответственно.

+0

Нет 'DateTimeUtils'. – RoCk

+0

@RoCk Попробуйте новый ответ –

1

Если ваш формат показывает «0: 00: 00T2016-08-24» сплит-формат и принимайте в зависимости от того, что вы хотите. У вас есть выбор.

В моем случае я хочу показать только дату я сделал это, но мой формат, как этого «2016-08-24T00: 00: 00»

holder.tYorDate.setText (list.get (позиция) .getDate() дробление ("Т") [0]).

Надеюсь, это поможет.