Bạn sẽ có thể định dạng nó bằng cách sử dụng DateTimeOffset
và K
custom format specifier. Sau đó, bạn có thể chuyển đổi số đó thành DateTime
sau đó nếu muốn. Mã mẫu:
using System;
using System.Globalization;
class Test
{
static void Main()
{
string text = "2013-07-03T02:16:03.000+01:00";
string pattern = "yyyy-MM-dd'T'HH:mm:ss.FFFK";
DateTimeOffset dto = DateTimeOffset.ParseExact
(text, pattern, CultureInfo.InvariantCulture);
Console.WriteLine(dto);
}
}
Một điều cần lưu ý là tên này được đặt tên không đúng - đây không phải là múi giờ, chỉ là chênh lệch UTC. Nó không thực sự cho bạn biết múi giờ ban đầu. (Có thể có các múi giờ khác nhau quan sát cùng bù đắp cùng một lúc.)
Hoặc với Noda Time (phiên bản không ổn định, mà sẽ trở thành 1.2 khá sớm):
string text = "2013-07-03T02:16:03.000+01:00";
OffsetDateTimePattern pattern = OffsetDateTimePattern.ExtendedIsoPattern;
OffsetDateTime odt = pattern.Parse(text).Value;
Console.WriteLine(odt);
Nguồn
2013-07-25 11:58:43
thể trùng lặp của [DateTime.ParseExact , Bỏ qua múi giờ] (http://stackoverflow.com/questions/6676856/datetime-parseexact-ignore-the-timezone) – V4Vendetta