JSON датируется от твитера до формата С#

Как отформатировать дату JSON, полученную из твиттера, в С# DateTime? Вот формат даты, которую я получаю:

"Tue, 19 Feb 2013 13:06:17 +0000"

Могу ли я сделать это с помощью JSON.NET?

Ответ 2

Часть кода из ответа на поток.

public const string Const_TwitterDateTemplate = "ddd MMM dd HH:mm:ss +ffff yyyy";

DateTime createdAt = DateTime.ParseExact((string)jo["created_at"], Const_TwitterDateTemplate, new System.Globalization.CultureInfo("en-US"));

Ответ 3

Ответы выше, в которых используется спецификатор формата ffff, похоже, вернут правильный результат, но технически это неправильно. ffff - спецификатор формата для десятитысячных долей секунды, а +0000 в дате Twitter означает часы и минуты, смещенные с UTC. Смотрите следующий формат:

string twitterTime = "Wed Feb 22 15:49:01 +0000 2017";
string twitterTimeformat = "ddd MMM dd HH:mm:ss zzz yyyy";

DateTime dateTime = DateTime.ParseExact(twitterTime, twitterTimeformat,
    CultureInfo.InvariantCulture, DateTimeStyles.AdjustToUniversal);
Console.WriteLine(dateTime);

Результат: 22.02.2012 3:49:01

Вы можете редактировать перечисление DateTimeStyles, чтобы вернуть местное время вместо UTC, если это необходимо.

Пользовательские строки формата даты и времени

DateTimeStyles Enumeration

Ответ 4

Это DateTimeOffset не DateTime. Следующее должно работать.

DateTimeOffset parsed = DateTimeOffset.Parse("Tue, 19 Feb 2013 13:06:17 +0000");