2010-07-23 12 views
15

मैं विंडोज़ सेवा में डेटटाइम.Now.ToString() का उपयोग कर रहा हूं और यह मुझे "7/23/2010 12:35:07 अपराह्न" जैसे आउटपुट दे रहा है दूसरे भाग को बाहर करने के लिए, केवल मिनट तक प्रदर्शित करना।डेटटाइम से सेकंड को बाहर कैसे निकालें। ToString()

तो उस प्रारूप से सेकंड बाहर करने के लिए ...?

+0

कृपया यह http://www.csharp-examples.net/string-format-datetime/ –

+0

@Amit, क्या आप इसके लिए उत्तर चिह्नित कर सकते हैं? – JohnOsborne

उत्तर

16

आप ToString() कार्य करने के लिए एक format string में पारित करने के लिए की जरूरत है:

DateTime.Now.ToString("g") 

यह विकल्प संस्कृति के बारे में पता है।

उत्पादन के इस प्रकार आप भी एक custom format string इस्तेमाल कर सकते हैं, तो आप पूर्ण नियंत्रण चाहते हैं के लिए:

DateTime.Now.ToString("MM/dd/yyyy hh:mm") 

हो जाएगा ताकि उत्पादन बिल्कुल संस्कृति की परवाह किए बिना ही।

DateTime.Now.ToString("MM/dd/yyyy hh:mm tt"); 
8

आप एक format इस्तेमाल कर सकते हैं।

29

आउटपुट यह कम के रूप में की तारीख पैटर्न:

DateTime.Now.ToString("g") 

पूर्ण प्रलेखन के लिए MSDN देखें

+0

यह सबसे अच्छा समाधान है, क्योंकि यह ओपी को अमेरिकी संस्कृति में क्या चाहता है लेकिन सामान्य रूप से संस्कृति-निर्भर भी है। – Noldorin

+0

यह समाधान इस बात को कैसे संतुष्ट करता है: "मैं दूसरे भाग को बाहर करना चाहता हूं, केवल मिनट तक प्रदर्शित करना चाहता हूं।" ? –

+0

@ JanMacháček "g" सेकंड प्रिंट नहीं करेगा, लेकिन प्रिंट की तारीख और समय प्रिंटिंग तब तक पूछता है जब तक कि संस्कृति धागे पर सही ढंग से सेट न हो। –

-1

प्रयास करें DateTime.Now.ToShortDateString() + " " + DateTime.Now.Hour.ToString() + ":" + DateTime.Now.Minute.ToString()

+0

यह केवल दिनांक भाग प्रदर्शित करेगा। आपको ToShortTimeString भी जोड़ना होगा। –

1

कृपया परीक्षण को देखने के लिए चाहते हो सकता:

DateTime.Now.ToString("MM/dd/yyyy hh:mm"); 
0

आप स्वतंत्र भाषा रहने के लिए चाहते हैं, आप निम्न कोड का उपयोग कर सकते हैं (शायद IValueConverter में (दूसरा कोड स्निपेट देखें)) स्ट्रिंग से केवल सेकंड भाग को निकालने के लिए:

int index = dateTimeString.LastIndexOf(':'); 
if (index > -1) { 
    dateTimeString = dateTimeString.Remove(index, 3); 
} 

यहां कनवर्टर का कार्यान्वयन है।

[ValueConversion(typeof(DateTime), typeof(string))] 
public class DateTimeToStringConverter : Markup.MarkupExtension, IValueConverter { 
    public DateTimeToStringConverter() : base() { 
     DisplayStyle = Kind.DateAndTime; 
     DisplaySeconds = true; 
    } 

    #region IValueConverter 
    public object Convert(object value, Type targetType, object parameter, Globalization.CultureInfo culture) { 
     if (value == null) return string.Empty; 
     if (!value is DateTime) throw new ArgumentException("The value's type has to be DateTime.", "value"); 

     DateTime dateTime = (DateTime)value; 

     string returnValue = string.Empty; 

     switch (DisplayStyle) { 
      case Kind.Date: 
       returnValue = dateTime.ToShortDateString(); 
       break; 
      case Kind.Time: 
       returnValue = dateTime.ToLongTimeString(); 
       break; 
      case Kind.DateAndTime: 
       returnValue = dateTime.ToString(); 
       break; 
     } 

     if (!DisplaySeconds) { 
      int index = returnValue.LastIndexOf(':'); 

      if (index > -1) { 
       returnValue = returnValue.Remove(index, 3); 
      } 
     } 

     return returnValue; 
    } 

    public object ConvertBack(object value, Type targetType, object parameter, Globalization.CultureInfo culture) { 
     throw new NotSupportedException(); 
    } 
    #endregion 

    public override object ProvideValue(IServiceProvider serviceProvider) { 
     return this; 
    } 

    #region Properties 
    public Kind DisplayStyle { get; set; } 

    public bool DisplaySeconds { get; set; } 
    #endregion 

    public enum Kind { 
     Date, 
     Time, 
     DateAndTime 
    } 
} 

तुम भी एक मार्कअप विस्तार के रूप में XAML में इसका इस्तेमाल कर सकते हैं:

<TextBlock Text="{Binding CreationTimestamp, Converter={local:DateTimeToStringConverter DisplayStyle=DateAndTime, DisplaySeconds=False}}" /> 
संबंधित मुद्दे