2010-06-20 14 views
6

मैं डेटाटाइम से घंटे प्राप्त करना चाहता हूं। तो अगर यह 1:00 है यह सिर्फ 1 हो सकता है अगर यह 22:00 यह 10 हो जाएगा तो घंटे 1-9स्वरूप अपवाद- दिनांक समय और घंटे

पर कोई जगह नहीं आगे शून्य होने के लिए तो मैं इस

DateTime test= DateTime.Now; 
Console.WriteLine(test.ToString("h")); 

मैं करने की कोशिश की इस

System.FormatException बिना क्रिया
संदेश = इनपुट स्ट्रिंग एक सही स्वरूप में नहीं था। स्रोत = mscorlib
StackTrace: System.DateTimeFormat.GetRealFormat (स्ट्रिंग प्रारूप, DateTimeFormatInfo dtfi) पर System.DateTimeFormat.ExpandPredefinedFormat (स्ट्रिंग प्रारूप DATETIME, & dateTime, DateTimeFormatInfo & dtfi, TimeSpan & ऑफसेट) पर पर System.DateTimeFormat.Format (DATETIME dateTime, स्ट्रिंग प्रारूप, DateTimeFormatInfo dtfi, TimeSpan ऑफसेट) System.DateTimeFormat.Format (DATETIME dateTime, स्ट्रिंग प्रारूप, DateTimeFor पर matInfo dtfi) System.DateTime.ToString (स्ट्रिंग प्रारूप) पर ConsoleApplication1.Program.Main पर (String [] args) सी में: \ Users \ chobo2 \ दस्तावेज़ \ दृश्य स्टूडियो 2010 \ परियोजनाओं \ ConsoleApplication1 \ ConsoleApplication1 \ Program.cs: लाइन 21 System.AppDomain.ExecuteAssembly (स्ट्रिंग assemblyFile, साक्ष्य assemblySecurity, स्ट्रिंग [] args) पर System.AppDomain._nExecuteAssembly (RuntimeAssembly विधानसभा, स्ट्रिंग [] args) पर माइक्रोसॉफ्ट पर .VisualStudio.HostingProcess.HostProc.RunUsersAssembly() सिस्टम पर। थ्रेडिंग। थ्रेडहेल्पर। थ्रे adStart_Context (वस्तु राज्य) System.Threading.ExecutionContext.Run (ExecutionContext executionContext, ContextCallback कॉलबैक, वस्तु राज्य, बूलियन ignoreSyncCtx) System.Threading.ExecutionContext.Run (ExecutionContext पर executionContext, ContextCallback कॉलबैक, वस्तु पर राज्य) System.Threading.ThreadHelper.ThreadStart() InnerException पर:

उत्तर

13
MSDN से

("h" कस्टम फॉर्मेट स्पेसिफायर):

यदि "एच" प्रारूप विनिर्देशक का उपयोग अन्य कस्टम प्रारूप विनिर्देशों के बिना किया जाता है, तो इसे मानक दिनांक और समय प्रारूप विनिर्देशक के रूप में व्याख्या किया जाता है और स्वरूप अपवाद को फेंकता है। एक प्रारूप विनिर्देशक का उपयोग करने के बारे में अधिक जानकारी के लिए, इस विषय में बाद में एकल कस्टम प्रारूप विनिर्देशों का उपयोग करना देखें।

आप (में "एकल कस्टम स्वरूप विनिर्देशक का उपयोग as described)" निम्न का उपयोग कर सकते हैं:

एक प्रारूप स्ट्रिंग में केवल विनिर्देशक के रूप में कस्टम दिनांक और समय प्रारूप विनिर्देशक से किसी का उपयोग करने के लिए (कि है, "डी", "एफ", "एफ", "जी", "एच", "एच", "के", "एम", "एम", "एस", "टी", " y "," z ",": ", या"/"कस्टम प्रारूप स्वयं निर्दिष्ट है), विनिर्देशक से पहले या उसके बाद एक स्थान शामिल करें, या एकल कस्टम दिनांक और समय निर्दिष्टकर्ता से पहले एक प्रतिशत ("% ") प्रारूप विनिर्देशक शामिल करें ।

तो, आप निम्न कर सकते हैं:

DateTime test= DateTime.Now; 
Console.WriteLine(test.ToString("{0:%h}")); // From the document, adds precision 
Console.WriteLine(test.ToString("%h")); // Will also work 
+0

हां मैं% ज के बारे में कुछ पाया, लेकिन समझ में नहीं आया कि क्यों आपको मिल जाती। http://msdn.microsoft.com/en-us/library/system.datetime.hour.aspx – chobo2

+0

+1। हालांकि यह कंसोल नहीं होना चाहिए। राइटलाइन (test.ToString ("% h")); '? –

+0

@ डेविड नील - दोनों काम करेंगे। '0:' एक परिशुद्धता विनिर्देशक है, बस मामले में। – Oded

संबंधित मुद्दे