如何从DateTime.ToString()中排除秒
我在Windows服务中使用DateTime.Now.ToString(),它给我输出像“7/23/2010 12:35:07 PM”我想排除第二部分,只显示最多分钟。
那么如何从那种格式中排除秒……?
输出为短日期模式:
DateTime.Now.ToString("g")
有关完整文档,请参阅MSDN 。
您需要将格式字符串传递给ToString()
函数:
DateTime.Now.ToString("g")
此选项具有文化意识。
对于这种输出,如果要完全控制,还可以使用自定义格式字符串 :
DateTime.Now.ToString("MM/dd/yyyy hh:mm")
无论文化如何,这都将完全相同。
您可以使用以下格式 :
DateTime.Now.ToString("MM/dd/yyyy hh:mm tt");
请测试:
DateTime.Now.ToString("MM/dd/yyyy hh:mm");
你可能想做一些像DateTime.Now.ToString("M/d/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中将其用作标记扩展:
尝试DateTime.Now.ToShortDateString() + " " + DateTime.Now.Hour.ToString() + ":" + DateTime.Now.Minute.ToString()
上述就是C#学习教程:如何从DateTime.ToString()中排除秒分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/962063.html