Meskipun Anda dapat menggunakan Valueproperti secara langsung sesuai jawaban Leszek, saya mungkin akan menggunakan operator kondisional-nol bersama dengan operator penggabungan-nol:
string dateInUTCString =
date?.ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ss.fffZ", CultureInfo.InvariantCulture)
?? "";
Di sini ?.hanya akan menghasilkan nilai nol jika datenol, dan ??operator akan memberikan nilai default jika hasil date?.ToUniversalTime().ToString(...)panggilan adalah nol (yang hanya akan terjadi jika datebernilai nol).
Perhatikan bahwa Anda benar-benar ingin menentukan budaya invarian untuk menghindari mendapatkan hasil yang tidak terduga ketika budaya utas saat ini tidak menggunakan kalender Gregorian, dan Anda tidak perlu mengutip semua literal dalam string format. Ini pasti berfungsi ketika Anda melakukannya, tetapi lebih sulit untuk membaca IMO.
Jika Anda tidak keberatan berapa banyak ketepatan diekspresikan dalam string, Anda dapat membuat kode lebih sederhana menggunakan string format standar "O" :
string dateInUTCString = date?.ToUniversalTime().ToString("O") ?? "";
Pada titik itu Anda tidak perlu menentukan CultureInfo.InvariantCulturekarena itu selalu digunakan oleh "O".
.ToString("o")?