【问题标题】:Formatting ToShortDateString to dd/MM/yyyy将 ToShortDateString 格式化为 dd/MM/yyyy
【发布时间】:2018-04-02 02:41:12
【问题描述】:

我有这样的日历:

查看

 <td>
     <asp:Calendar ID="Calendar1" runat="server" 
      OnSelectionChanged="DateChange">
     </asp:Calendar>
     <asp:TextBox ID="TextBox2" runat="server"></asp:TextBox>
 </td>

.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() + '.';
    }

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

但我明白了

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

我能做些什么来解决这个问题?

【问题讨论】:

    标签: c# asp.net date datetime


    【解决方案1】:

    ToShortDateString有一个可以接受任何参数的重载。

    如果您的ToShortDateString() 返回MM/dd/yyyy 格式,则意味着您的CurrentCulture 在其ShortDatePattern 属性中具有此格式。

    你总是可以使用custom formatting 来表示适当的文化;

    TextBox2.Text = DateTime.Today.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);
    

    【讨论】:

    • 需要第二个参数吗?看起来这只是内置格式所必需的:"d", "D", "f", "F", "g", "G", "m", "o", "r", "s", "t", "T", "u", "U", "Y"
    • @Sinjai 作为最佳实践,是的,您需要它。否则,您可能会得到不同格式的结果。 / 说明符(用于DateSeparator)和: 说明符(用于TimeSeparator)具有“特殊”含义,因为在自定义日期中替换我当前的文化或提供的文化日期或时间分隔符和时间格式。如果您没有为这些说明符提供 任何 文化,则它们将替换为 CurrentCulture 的日期和/或时间分隔符,可能不同于 /: 适用于不同的文化。
    • CultureInfo.InvariantCulture 真的有必要吗?
    • @AlexanderS. 在这种情况下,是的。见我之前的评论。 /: 字符具有特殊含义,它们的“表示”取决于您使用的文化设置。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-18
    • 2016-12-13
    • 1970-01-01
    • 1970-01-01
    • 2013-11-01
    • 2021-12-18
    • 1970-01-01
    相关资源
    最近更新 更多