格式化 TimeSpan 字符串
Posted
技术标签:
【中文标题】格式化 TimeSpan 字符串【英文标题】:Format the TimeSpan string 【发布时间】:2013-01-23 13:49:52 【问题描述】:我有一个带有日历和 7 个标签的小型 C# 程序。当我选择一个日期时,标签会显示该周的日期和日期。
标签是使用TimeSpan
字符串填充的,我想做的是格式化这个字符串,以便它只显示没有时间的日期和日期。
这是我目前的代码:
private void monthCalendar1_DateSelected(object sender, DateRangeEventArgs e)
DateTime dTime = new DateTime();
dTime = monthCalendar1.SelectionStart;
dTime -= new TimeSpan((int)dTime.DayOfWeek, 0, 0, 0 );
for (int i = 1; i < 8; i++)
var dt = dTime.AddDays(i);
lb[i].Text = dt.DayOfWeek + " : " + dt.Date;
【问题讨论】:
你也可以这样使用 lb[i].Text =dt.Date.ToString("dd/MM/yyyy"); 【参考方案1】:您可以拨打dt.Date.ToShortDateString()
。
【讨论】:
感谢您完成了这项工作。不尝试那个我觉得很愚蠢:s【参考方案2】:您有多种选择。
DateTime
类型可以使用ToShortDateString()
方法
lb[i].Text = dt.DayOfWeek + " : " + dt.Date.ToShortDateString()
或者您可以为ToString("format")
方法提供格式以准确指定您希望它的外观。
lb[i].Text = dt.DayOfWeek + " : " + dt.Date.ToString("MM/dd/yyyy");
【讨论】:
我更喜欢第二种解决方案,看起来更灵活。 @Tacit:取决于你的需要。第一种解决方案具有适应用户文化的优势。例如,在法语中,月/日/年是不自然的,因为在法语中,日期是按日/月/年的顺序排列的。第一个解决方案将向法国用户显示日/月/年。【参考方案3】:试试DateTime.ToShortDateString()
方法;
将当前 DateTime 对象的值转换为其等效值 短日期字符串表示。
DateTime dt = DateTime.Now;
label8.Text = dt.Date.ToShortDateString());
您可以通过Custom Date and Time Format Strings
了解更多详情
【讨论】:
以上是关于格式化 TimeSpan 字符串的主要内容,如果未能解决你的问题,请参考以下文章
如何在 .NET 中使用自定义格式对 TimeSpan 对象进行 String.Format ?