2013-02-19 30 views
10

Cách định dạng ngày JSON thu được từ twitter thành C# DateTime? Đây là định dạng của ngày tôi nhận được:Ngày JSON từ tweeter sang định dạng C#

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

Tôi có thể làm điều đó với JSON.NET không?

+0

Điều gì xảy ra khi bạn làm 'DateTime.Parse ("Tue, 19 tháng 2 năm 2013 13:06:17 +0000")'? –

+0

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

Trả lời

1

Đó là DateTimeOffset không DateTime. Sau đây nên làm việc.

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

Một phần mã từ câu trả lời của luồng.

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

Câu trả lời ở trên sử dụng công cụ định dạng ffff dường như trả lại kết quả chính xác, nhưng về mặt kỹ thuật điều này là sai. ffff là định dạng thông số cho mười phần nghìn giây, và số +0000 trong một ngày Twitter cho biết số giờ và phút bù trừ từ UTC. Xem định dạng dưới đây:

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

kết quả: 2017/02/22 15:49:01

Bạn có thể chỉnh sửa DateTimeStyles liệt kê để trả lại thời gian địa phương thay vì tính theo giờ UTC nếu muốn.

Custom Date and Time Format Strings

DateTimeStyles Enumeration

Các vấn đề liên quan