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()에서 초를 제외하는 방법
그렇다면이 형식에서 초를 제외하는 방법은 무엇입니까?
당신은 ToString()
함수에 format string에 전달해야
DateTime.Now.ToString("g")
이 옵션은 문화를 알고있다.
DateTime.Now.ToString("MM/dd/yyyy hh:mm")
에 관계없이 문화의 정확히 같은이 출력됩니다 : 출력 이런 종류의 당신이 완벽하게 제어하려는 경우 또한, custom format string를 사용할 수에 대한
.DateTime.Now.ToString("MM/dd/yyyy hh:mm tt");
당신은 format를 사용할 수 있습니다.
DateTime.Now.ToShortDateString() + " " + DateTime.Now.Hour.ToString() + ":" + DateTime.Now.Minute.ToString()
이것은 날짜 부분 만 표시합니다. ToShortTimeString도 추가해야합니다. –
당신은 더 많은 정보를 Custom Date and Time Format Strings
하시기 바랍니다 테스트보고에 대한 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/ –
@Amit, 이거 대답 해줄 수 있겠 니? – JohnOsborne