UTC kullanarak
ISO 8601 ( MSDN tarih saat biçimleri )
Console.WriteLine(DateTime.UtcNow.ToString("s") + "Z");
2009-11-13T10: 39: 35Z
Z orada çünkü
Zaman UTC ise, boşluk olmadan zamandan hemen sonra bir 'Z' ekleyin. 'Z', sıfır UTC sapması için bölge göstergesidir. "09:30 UTC" bu nedenle "09: 30Z" veya "0930Z" olarak temsil edilir. "14:45:15 UTC", "14: 45: 15Z" veya "144515Z" olacaktır.
Bir ofset eklemek istiyorsanız
int hours = TimeZoneInfo.Local.BaseUtcOffset.Hours;
string offset = string.Format("{0}{1}",((hours >0)? "+" :""),hours.ToString("00"));
string isoformat = DateTime.Now.ToString("s") + offset;
Console.WriteLine(isoformat);
Unutulmaması gereken iki nokta: + veya - zaman geçtikten sonra gereklidir, ancak açıkça + pozitif sayılarda gösterilmez. Wikipedia'ya göre ofset + hh formatında veya + hh: mm olabilir. Sadece saatlerce tuttum.
Bildiğim kadarıyla, RFC1123 (HTTP tarihi, "u" biçimlendiricisi) saat dilimi farklarını verme amacı taşımıyor . Tüm saatler GMT / UTC olarak tasarlanmıştır.
UtcNow.ToString(s)+Zyanlış olan. ISO8601 tarafından desteklenen gidiş dönüş seçeneğiToString("O"). Ayrıca kabul edilen cevabın, sadece gerçek tarih saat değerini kullanmak yerine (Tür = Yerel ise) bir gün ışığından yararlanma saat dilimi içerebilen, her zaman Z saat dilimini veren tarih saatinin UTC değerini kullandığını belirtmek için. Kabul edilen cevabı değiştirmeyi düşünüyor musunuz?