Menggunakan UTC
ISO 8601 ( format tanggal waktu MSDN )
Console.WriteLine(DateTime.UtcNow.ToString("s") + "Z");
2009-11-13T10: 39: 35Z
The Z ada karena
Jika waktunya dalam UTC, tambahkan 'Z' langsung setelah waktu tanpa spasi. 'Z' adalah penanda zona untuk offset UTC nol. Oleh karena itu, "09:30 UTC" direpresentasikan sebagai "09: 30Z" atau "0930Z". "14:45:15 UTC" akan menjadi "14: 45: 15Z" atau "144515Z".
Jika Anda ingin memasukkan offset
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);
Dua hal yang perlu diperhatikan: + atau - diperlukan setelah waktu tetapi jelas + tidak ditampilkan pada bilangan positif. Menurut wikipedia, offset bisa dalam format + hh atau + hh: mm. Saya telah menyimpannya hanya beberapa jam.
Sejauh yang saya tahu, RFC1123 (tanggal HTTP, pemformat "u") tidak dimaksudkan untuk memberikan offset zona waktu. Semua waktu dimaksudkan untuk GMT / UTC.
UtcNow.ToString(s)+Zadalah salah. ISO8601 didukung oleh opsi RoundTripToString("O"). Juga untuk menunjukkan bahwa jawaban yang diterima menggunakan nilai UTC dari datetime, yang akan selalu memberikan zona waktu Z, daripada hanya menggunakan nilai datetime aktual, yang (jika Kind = Local) mungkin berisi zona waktu musim panas. Pertimbangkan untuk mengubah jawaban yang diterima?