Dovresti essere in grado di formattare utilizzando DateTimeOffset
e K
custom format specifier. È quindi possibile convertirlo in un DateTime
in seguito, se lo si desidera. Esempio di codice:
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);
}
}
Una cosa da notare è che questo è mal chiamato - in realtà non è un fuso orario, è solo compensare un'UTC. Lo non ha lo effettivamente indicato il fuso orario originale. (Ci possono essere diversi fusi orari differenti osservando lo stesso di offset allo stesso tempo.)
O con Noda Time (versione instabile, che diventerà ben presto 1.2):
string text = "2013-07-03T02:16:03.000+01:00";
OffsetDateTimePattern pattern = OffsetDateTimePattern.ExtendedIsoPattern;
OffsetDateTime odt = pattern.Parse(text).Value;
Console.WriteLine(odt);
fonte
2013-07-25 11:58:43
possibile duplicato di [DateTime.ParseExact , Ignora il fuso orario] (http://stackoverflow.com/questions/6676856/datetime-parseexact-ignore-the-timezone) – V4Vendetta