2013-02-19 9 views
10

Jak sformatować datę JSON uzyskaną ze strony twitter na C# DateTime? Oto format daty otrzymam:Data JSON z tweetera do formatu C#

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

Mogę to zrobić z Json.NET?

+0

Co się dzieje, gdy robisz 'DateTime.Parse ("Tue, 19 lutego 2013 13:06:17 +0000")'? –

+0

Duplikat http://stackoverflow.com/questions/1551662/c-sharp-parse-json-date – Pete

Odpowiedz

1

To datetimeoffset nie DateTime. Następujące powinny działać.

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

Część kodu z odpowiedzi przepływu.

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

Powyższe odpowiedzi za pomocą specyfikatora formatu ffff wydają się zwracać prawidłowy wynik, ale pod względem technicznym jest to błędne. ffff to specyfikator formatu na dziesięć tysięcznych sekundy, a +0000 na dacie z Twittera wskazuje godziny i minuty przesunięte względem UTC. Patrz poniższy format:

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); 

Wynik: 22.02.2017 15:49:01

można edytować wyliczanie DateTimeStyles powrotu czas lokalny zamiast UTC razie potrzeby.

Custom Date and Time Format Strings

DateTimeStyles Enumeration