2012-07-20 26 views
15

से पहले स्ट्रिंग करने के लिए टाइमस्पेन को कैसे प्रारूपित करें I .NET 3.5 का उपयोग कर सी # में संकलित कर रहा हूं और एक टाइमस्पेन को स्ट्रिंग में कनवर्ट करने और स्ट्रिंग को प्रारूपित करने का प्रयास कर रहा हूं। मैं.NET 4.0

myString = myTimeSpan.ToString("c");

उपयोग करने के लिए हालांकि TimeSpan.ToString विधि .NET 4.0 जब तक एक तर्क के रूप में एक प्रारूप स्ट्रिंग नहीं ले करता है और मैं .NET 3.5 का उपयोग कर रहा चाहते हैं।

फिर आप स्ट्रिंग के रूप में टाइमस्पेन को कैसे प्रारूपित करेंगे? मेरा अंतिम लक्ष्य टाइमस्पेन प्रारूप hh:mm:ss में प्रदर्शित करना है, लेकिन वर्तमान में hh:mm:ss:fffffff प्राप्त कर रहा हूं।

मैं

myString = string.Format("{0:hh:mm:ss}", myTimeSpan);

का उपयोग कर, लेकिन String.Format केवल मेरे दिनांक समय स्वरूपण जाता है और गुजर अलग स्वरूप तार जब एक TimeSpan फ़ॉर्मेट करने के लिए कोशिश कर काम नहीं करता है की कोशिश की है।

+4

@ जॉन: यह एक समाधान नहीं है। –

+0

यह लिंक आपकी मदद कर सकता है: http://stackoverflow.com/questions/840120/timespan-formatting –

+1

http://stackoverflow.com/a/574894/1028323 आपके प्रश्न का उत्तर दें। – Alex

उत्तर

18

एक तरीका यह हो सकता है:

TimeSpan ts = DateTime.Now - DateTime.Now.AddHours(-10); 
Console.WriteLine(string.Format("{0:00}:{1:00}:{2:00}", ts.TotalHours, ts.Minutes, ts.Seconds)); 

परिणाम होगा कुछ की तरह:

09:59:59 

संपादित करें:

या आप कोशिश कर सकते हैं:

TimeSpan ts = DateTime.Now - DateTime.Now.AddHours(-10); 
DateTime mydate = new DateTime(ts.Ticks); 
Console.WriteLine(mydate.ToString(("hh:mm:ss"))); 

आउटपुट होगा :

09:59:59 
+2

आप शायद '" {0}: {1:00}: {2:00} "' – Joey

+0

@Joey, सही, मेरे उत्तर को संशोधित करना चाहते हैं – Habib

0

बेहतर 24 * टी। दिन + टी। कुलहोर्स से अधिक है। की तुलना करें:

var ts = TimeSpan.FromHours(23.9); 
Console.WriteLine(ts); 
Console.WriteLine("{0:00}:{1:00}:{2:00}", ts.TotalHours, ts.Minutes, ts.Seconds); 
Console.WriteLine("{0}:{1:00}:{2:00}", ts.TotalHours, ts.Minutes, ts.Seconds); 
Console.WriteLine("{0}:{1:00}:{2:00}", 24*ts.Days+ts.Hours, ts.Minutes, ts.Seconds);