我在Windows服務中使用DateTime.Now.ToString()它給我輸出像「7/23/2010 12:35:07 PM」 我想要排除第二部分,只顯示最多分鐘。如何排除秒DateTime.ToString()
那麼如何從該格式中排除秒......?
我在Windows服務中使用DateTime.Now.ToString()它給我輸出像「7/23/2010 12:35:07 PM」 我想要排除第二部分,只顯示最多分鐘。如何排除秒DateTime.ToString()
那麼如何從該格式中排除秒......?
你必須在一個format string傳遞給ToString()
功能:
DateTime.Now.ToString("g")
此選項文化意識。
對於這種類型的輸出,你也可以使用一個custom format string,如果你想完全控制:
DateTime.Now.ToString("MM/dd/yyyy hh:mm")
這將輸出完全一樣的,無論文化。
你可以使用一個format:
DateTime.Now.ToString("MM/dd/yyyy hh:mm tt");
嘗試DateTime.Now.ToShortDateString() + " " + DateTime.Now.Hour.ToString() + ":" + DateTime.Now.Minute.ToString()
這將只顯示日期部分。你也必須添加ToShortTimeString。 – 2010-07-23 07:28:27
你可能想要做這樣的事情DateTime.Now.ToString("M/d/yyyy hh:mm");
請測試:
DateTime.Now.ToString("MM/dd/yyyy hh:mm");
如果你想保持獨立的語言,你可以使用下面的代碼(也許在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}}" />
請參閱本http://www.csharp-examples.net/string-format-datetime/ – 2010-07-23 07:24:14
@Amit,你能爲此標記一個答案嗎? – JohnOsborne 2018-01-22 17:43:23