Ответ 1
Решено использовать DateTime.ParseExact
- > http://blog.kevinyu.org/2012/07/handling-json-in-net.html
Как отформатировать дату JSON, полученную из твиттера, в С# DateTime? Вот формат даты, которую я получаю:
"Tue, 19 Feb 2013 13:06:17 +0000"
Могу ли я сделать это с помощью JSON.NET?
Решено использовать DateTime.ParseExact
- > http://blog.kevinyu.org/2012/07/handling-json-in-net.html
Часть кода из ответа на поток.
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"));
Ответы выше, в которых используется спецификатор формата 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, если это необходимо.
Это DateTimeOffset не DateTime. Следующее должно работать.
DateTimeOffset parsed = DateTimeOffset.Parse("Tue, 19 Feb 2013 13:06:17 +0000");