Установить формат даты и времени - C # - PullRequest
4 голосов
/ 13 февраля 2012

У меня есть следующее свойство в пользовательском элементе управления:

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

Выбирает даты в следующем формате 01-Feb-2012. Я хочу изменить формат, чтобы он возвращал даты в формате dd/MM/yy ... как это возможно?

Ответы [ 6 ]

3 голосов
/ 13 февраля 2012

Используются текущие настройки культуры на вашем компьютере.Если вам нужен этот формат, вам нужно вернуть его в виде строки или разрешить принимающему методу преобразовать его в строку.Например:

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

Я не учел, что ваше свойство Value может также возвращать нулевое значение.Это просто, чтобы показать вам, как отформатировать результат.

1 голос
/ 13 февраля 2012

Описание

DateTime не имеет format, но вы можете изменить формат отображения, используя свойство CustomFormat.

По умолчанию формат отображения зависит от Thread.CurrentThread.CurrentCulture.

Пример

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

Дополнительная информация

1 голос
/ 13 февраля 2012

Само свойство DateTime не имеет определенного формата - это нейтральное представление даты и времени. Это формат элемента управления вводом, который вы должны установить. Элемент управления DateTimeInput, вероятно, имеет свойство «FormatString», но это зависит от элемента управления. Вы используете WPF? ASP.NET? WinForms?

1 голос
/ 13 февраля 2012

DateTime? (т.е. Nullable<DateTime>) не имеет неявного форматирования.Вам нужно будет отформатировать значение в любом пользовательском интерфейсе, с которым вы работаете, или изменить свое свойство (или добавить новое), чтобы вместо него возвращалось значение String:

public String FormattedValue {
    get {
        return DatePickerInput.SelectedDate.HasValue
            ? DatePickerInput.SelectedDate.Value.ToString("dd/MM/yy")
            : ""; // return an empty string if SelectedDate is null
    }
}
0 голосов
/ 13 февраля 2012

Посмотрите на этот документ Microsoft: Стандартный формат данных и времени .

0 голосов
/ 13 февраля 2012

Тип данных, который вы возвращаете - DateTime - сам по себе «не имеет» формат. Я бы предложил оставить его вызывающей стороне для принятия решения о форматировании или добавить дополнительное свойство, которое возвращает строку и форматирует в соответствии с вашими пожеланиями.

...