将ToShortDateString格式化为dd/MM/yyyy

Pep*_*epe 5 c# asp.net datetime date

我有这样的日历:

视图

 <td>
     <asp:Calendar ID="Calendar1" runat="server" 
      OnSelectionChanged="DateChange">
     </asp:Calendar>
     <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
 </td>
Run Code Online (Sandbox Code Playgroud)

.Cs文件

protected void Page_Load(object sender, EventArgs e)
    {
        TextBox2.Text = DateTime.Today.ToShortDateString()+'.';
    }

    protected void DateChange(object sender, EventArgs e)
    {
        TextBox2.Text = Calendar1.SelectedDate.ToShortDateString() + '.';
    }
Run Code Online (Sandbox Code Playgroud)

它显示日期为"MM/dd/yyyy",但我想将其显示为"dd/MM/yyyy",我尝试将其更改DateTime.Today.ToShortDateString()+'.'; 为DateTime.Today.ToShortDateString("dd/MM/yyyy");

但我明白了

错误3方法'ToShortDateString'没有重载需要1个参数

我该怎么做才能解决这个问题?

Son*_*nül 10

ToShortDateString确实不具有过载这需要的任何参数.

如果您的ToShortDateString()返回MM/dd/yyyy格式,这意味着您CurrentCulture的ShortDatePattern属性中包含此格式.

您可以随时使用自定义格式,就像使用正确的文化一样;

TextBox2.Text = DateTime.Today.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)

  • @Sinjai 作为最佳实践,是的,您需要它。否则,您_可能_会得到不同格式的结果。`/` 说明符(用于`DateSeparator`)和`:` 说明符(用于`TimeSeparator`)具有“特殊”含义,如在自定义日期和时间格式中_替换当前文化或提供的文化日期或时间分隔符_。如果您不提供带有这些说明符的 _any_ 文化,它们将被替换为 `CurrentCulture` 的日期和/或时间分隔符,对于不同的文化,它_可能与 `/` 或 `:` 不同。 (2认同)