2015-10-12 2 views
2

Я использую API-интерфейс Facebook в своем приложении. API Facebook возвращает массив объектов в качестве ответа. Для каждого элемента массива существует объект created_time, который обозначает время публикации. Мне нужно преобразовать это datetime в Delphi TDateTime, чтобы я мог иметь mm/dd // yy hh: mm: ss format time.Преобразование Facebook created_time в TDateTime в Delphi

ArrayItem:

{ 
     "created_time": "2015-10-12T01:56:25+0000", 
     "link": "http://exampleeeeee.com", 
     "id": "349561906753_10154021323131754" 
     } 

Кстати Facebook возвращает DateTime в другом формате, как хорошо, но я готов к этому научиться.

+0

Кажется, что легко разобрать. Я предполагаю, что это 12 октября 2015 года в 1:56 и 25 секунд. Не уверен, что такое 0000, сначала я думал миллисекунды, но не знаю. –

+0

@Rabi Знаете ли вы формат даты, используемый Facebook? Я считаю, что это документировано, что это такое. –

+0

@DavidHeffernan Формат ISO 8601. Вот пример. http://www.w3.org/TR/NOTE-datetime. –

ответ

6

Формат даты - ISO 8601, и вы можете преобразовать его с помощью функции XMLTimeToDateTime в модуле XSBuiltIns.

uses 
    XSBuiltIns; 

procedure TForm1.FormCreate(Sender: TObject); 
var 
    ISO8601StrA, ISO8601StrB: String; 
    Dt: TDateTime; 
begin 
    ISO8601StrA := '2015-10-12T01:56:25+0000'; 
    Dt := XMLTimeToDateTime(ISO8601StrA); 
    ISO8601StrB := DateTimeToXMLTime(Dt, False); 
end; 
+0

Этот 'with' всегда дает мне головную боль: -/ –

+1

Работал, как ожидалось. Огромное спасибо. –

Смежные вопросы