【问题标题】:Set Datetime format - C#设置日期时间格式 - C#
【发布时间】:2012-02-13 13:07:47
【问题描述】:

我在用户控件中有以下属性:

    public DateTime? Value 
        { 
        get 
        {
            return DatePickerInput.SelectedDate; 
        } 
        set 
        { 
            DatePickerInput.SelectedDate = value; 
        } 
    }

这将选择以下格式的日期01-Feb-2012。我想更改格式,使其以dd/MM/yy 格式返回日期...这怎么可能?

【问题讨论】:

  • 不要将值的 UI 呈现与真实对象值混淆,DateTime 字段将始终具有正确的值,然后它只是关于如何在控件或用户界面上呈现它。尝试调用 Value.ToString("dd/MM/yy") 你应该得到你想要的,至少在调试中......
  • 您应该在控件 (UI) 中设置想要的格式。

标签: c# .net datetime date


【解决方案1】:

它使用您计算机上的当前文化设置。如果您想要这种格式,您需要将其作为字符串返回或让您的接收方法将其转换为字符串。例如:

string myFormat = Value.ToString("dd/MM/yyyy");

我没有考虑到您的 Value 属性也可以返回空值。这只是为了向您展示如何格式化结果。

【讨论】:

    【解决方案2】:

    DateTime?(即Nullable<DateTime>)没有隐式格式。您需要在正在使用的任何 UI 中格式化值或更改属性(或添加新属性)以返回 String 值:

    public String FormattedValue {
        get {
            return DatePickerInput.SelectedDate.HasValue
                ? DatePickerInput.SelectedDate.Value.ToString("dd/MM/yy")
                : ""; // return an empty string if SelectedDate is null
        }
    }
    

    【讨论】:

      【解决方案3】:

      DateTime 属性本身不携带特定格式 - 它是日期时间的中性表示。这是您应该设置的输入控件的格式。 DateTimeInput 控件可能具有“FormatString”属性,但这取决于控件。你在使用 WPF 吗? ASP.NET? WinForms?

      【讨论】:

        【解决方案4】:

        说明

        日期时间没有format,但您可以使用CustomFormat 属性更改显示格式。

        默认显示格式取决于Thread.CurrentThread.CurrentCulture。

        样本

        myDateTimePicker.Format = DateTimePickerFormat.Custom;
        myDateTimePicker.CustomFormat = "dd/MM/yy";
        

        更多信息

        【讨论】:

          【解决方案5】:

          您返回的数据类型 - DateTime - 本身没有“格式”。我建议将其留给您的调用者来决定格式,或者实现一个额外的属性,根据您的意愿返回一个字符串和格式。

          【讨论】:

            【解决方案6】:

            查看此 Microsoft 文档:Standard Data and Time Format。

            【讨论】:

              猜你喜欢
              • 2015-01-13
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多