जबकि आप Valueसंपत्ति का उपयोग सीधे लेसज़ेक के जवाब के अनुसार कर सकते हैं , मैं शायद अशक्त-संचालक ऑपरेटर के साथ मिलकर अशक्त-संचालक ऑपरेटर का उपयोग करूंगा:
string dateInUTCString =
date?.ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ss.fffZ", CultureInfo.InvariantCulture)
?? "";
यहां ?.केवल शून्य मान होने पर परिणाम dateशून्य हो जाएगा, और कॉल का ??परिणाम date?.ToUniversalTime().ToString(...)शून्य होने पर ऑपरेटर डिफ़ॉल्ट रूप से मान प्रदान करेगा (जो केवल तभी होगा यदि dateशून्य है)।
ध्यान दें कि आप वास्तव में अपरिवर्तनीय संस्कृति को निर्दिष्ट करना चाहते हैं ताकि अप्रत्याशित परिणाम प्राप्त करने से बचें जब वर्तमान थ्रेड की संस्कृति ग्रेगोरियन कैलेंडर का उपयोग नहीं करती है, और आपको प्रारूप स्ट्रिंग में उन सभी शाब्दिकों को उद्धृत करने की आवश्यकता नहीं है। जब आप ऐसा करते हैं तो यह निश्चित रूप से काम करता है, लेकिन IMO को पढ़ना कठिन होता है।
यदि आपको कोई आपत्ति नहीं है कि स्ट्रिंग में कितनी सटीकता है, तो आप "O" मानक प्रारूप स्ट्रिंग का उपयोग करके कोड को सरल बना सकते हैं :
string dateInUTCString = date?.ToUniversalTime().ToString("O") ?? "";
उस बिंदु पर आपको यह निर्दिष्ट करने की आवश्यकता नहीं है CultureInfo.InvariantCultureकि इसका उपयोग हमेशा "O" द्वारा किया जाता है।
.ToString("o")?