0

Я могу получить весь фид пользователя в facebook graph api в моем приложении для Android. Ниже даты строки из updated_time ключа:Как преобразовать дату ответа в facebook на отметку времени unix

2014-12-14T18:23:17+0000 

Во-первых, я не был в состоянии найти формат для этой строки. Из google я только узнаю, это может быть RFC 2822 date format.

Я хочу преобразовать эту строку даты в штамп времени unix для получения новых пользовательских каналов. Как я могу преобразовать эту строку в штамп времени unix?

Если я пытаюсь разобрать эту строку, используя следующий формиат Я получаю пустую дату:

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.ENGLISH); 

ответ

1

Ваш шаблон неправильной формы.

String timeStamp = "2014-12-14T18:23:17+0000"; 
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ", Locale.ENGLISH); 
System.out.println("Unix timestamp: " + dateFormat.parse(timeStamp).getTime()); 
2

Советуют раздеть +0000 с даты, поскольку это информация о часовом поясе. Затем, обрабатывая часовой пояс отдельно, т. Е. Как целое число, вы можете либо добавить его, либо вычесть его из времени в миллисекундах, умножив часовой пояс и превратив его в миллисекунды.

public static long getDateInMillis(String srcDate) { 
    try { 
     SimpleDateFormat desiredFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss"); 

     long dateInMillis = 0; 
     try { 
      Date date = desiredFormat.parse(srcDate); 
      dateInMillis = date.getTime(); 
      return dateInMillis; 
     } catch (ParseException e) { 
      e.printStackTrace(); 
     } 
    } catch (Exception ex) { 
     ex.printStackTrace(); 
    } 

    return 0; 
}