设置日期时间格式 - C#

4

我有一个用户控件,其中包含以下属性:

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

这选择的日期格式是 01-Feb-2012。我想更改格式,以便返回格式为 dd/MM/yy 的日期...如何实现?


请注意,不要将 UI 渲染的值与实际对象值混淆。DateTime 字段始终具有正确的值,只是关于如何在控件或用户界面上呈现它而已。尝试调用 Value.ToString("dd/MM/yy"),至少在调试中应该可以得到您想要的结果... - Davide Piras
1
你应该在你的控件(UI)中设置所需的格式。 - Kirill Polishchuk
6个回答

3

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

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

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


1

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
    }
}

1

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


1

描述

DateTime 没有 format,但是您可以使用 CustomFormat 属性更改显示格式。

默认情况下,显示格式取决于 Thread.CurrentThread.CurrentCulture

示例

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

更多信息


0
你返回的数据类型 - DateTime - 本身并没有“格式”。我建议让调用者决定格式,或者实现一个额外的属性,返回一个字符串并按照你的要求进行格式化。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接