Neden Gidiş-Dönüş ("O", "o") Biçim Tanımlayıcısını kullanmıyorsunuz ?
"O" veya "o" standart biçim belirticisi, saat dilimi bilgilerini koruyan ve ISO 8601 ile uyumlu bir sonuç dizesi yayan bir model kullanan özel bir tarih ve saat biçimi dizesini temsil eder. DateTime değerleri için bu biçim belirticisi, tarihi korumak için tasarlanmıştır. ve metindeki DateTime.Kind özelliği ile birlikte saat değerleri. Biçimlendirilmiş dize, styles parametresi DateTimeStyles.RoundtripKind olarak ayarlanmışsa, DateTime.Parse (String, IFormatProvider, DateTimeStyles) veya DateTime.ParseExact yöntemi kullanılarak geri ayrıştırılabilir.
"O" veya "o" standart biçim belirteci, "yyyy" - "MM" - "gg'T'HH": "mm": "ss". "FffffffK" Tarih Saat değerleri için özel biçim dizesine ve "yyyy '-' MM '-' gg'T'HH ':' mm ':' ss '.' fffffffzzz" DateTimeOffset değerleri için özel biçim dizesi. Bu dizede, kısa çizgiler, iki nokta üst üste ve "T" harfi gibi tek tek karakterleri sınırlayan tek tırnak işareti çiftleri, tek tek karakterin değiştirilemeyecek bir değişmez değer olduğunu belirtir. Kesme işaretleri çıktı dizesinde görünmez.
O "veya" o "standart biçim belirleyicisi (ve" yyyy '-' MM '-' gg'T'HH ':' mm ':' ss '.' FffffffK "özel biçim dizesi) üç yoldan yararlanır ISO 8601, DateTime değerlerinin Kind özelliğini korumak için saat dilimi bilgilerini temsil eder:
public class Example
{
public static void Main()
{
DateTime dat = new DateTime(2009, 6, 15, 13, 45, 30,
DateTimeKind.Unspecified);
Console.WriteLine("{0} ({1}) --> {0:O}", dat, dat.Kind);
DateTime uDat = new DateTime(2009, 6, 15, 13, 45, 30,
DateTimeKind.Utc);
Console.WriteLine("{0} ({1}) --> {0:O}", uDat, uDat.Kind);
DateTime lDat = new DateTime(2009, 6, 15, 13, 45, 30,
DateTimeKind.Local);
Console.WriteLine("{0} ({1}) --> {0:O}\n", lDat, lDat.Kind);
DateTimeOffset dto = new DateTimeOffset(lDat);
Console.WriteLine("{0} --> {0:O}", dto);
}
}