【问题标题】:Format the TimeSpan string格式化 TimeSpan 字符串
【发布时间】:2023-03-12 23:03:02
【问题描述】:

我有一个带有日历和 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");

标签: c# visual-studio-2010 timespan monthcalendar


【解决方案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了解更多详情

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-23
    相关资源
    最近更新 更多