Mặc dù bạn có thể sử dụng thuộc Valuetính trực tiếp theo câu trả lời của Leszek, nhưng tôi có thể sử dụng toán tử có điều kiện null kết hợp với toán tử hợp nhất null:
string dateInUTCString =
date?.ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ss.fffZ", CultureInfo.InvariantCulture)
?? "";
Ở đây, ?.ý chí sẽ chỉ dẫn đến một giá trị null nếu datelà null và ??toán tử sẽ cung cấp một giá trị mặc định nếu kết quả của date?.ToUniversalTime().ToString(...)cuộc gọi là null (điều này sẽ chỉ xảy ra nếu datelà null).
Lưu ý rằng bạn thực sự muốn chỉ định văn hóa bất biến để tránh nhận kết quả không mong muốn khi văn hóa của chủ đề hiện tại không sử dụng lịch Gregorian và bạn không cần trích dẫn tất cả những từ đó trong chuỗi định dạng. Nó chắc chắn hoạt động khi bạn làm như vậy, nhưng đọc IMO khó hơn.
Nếu bạn không quan tâm đến độ chính xác được thể hiện trong chuỗi, bạn có thể làm cho mã đơn giản hơn bằng cách sử dụng chuỗi định dạng chuẩn "O" :
string dateInUTCString = date?.ToUniversalTime().ToString("O") ?? "";
Tại thời điểm đó, bạn không cần chỉ định CultureInfo.InvariantCulturevì luôn được sử dụng bởi "O".
.ToString("o")?