Как я могу отформатировать не дату в качестве значения даты - PullRequest
1 голос
/ 14 марта 2012

Я создаю пользовательский тип DateOnly, который фактически является DateTime с удаленной частью времени.

Я столкнулся с небольшой проблемой, когда хочу отформатировать значение моего нового типа, напримердата:

Dim startDate As New DateOnly(2012, 1, 2)
Debug.WriteLine(String.Format("{0:ddd}", startDate))

Это выводит: 02/01/2012, я хочу иметь возможность отформатировать это как Mon

Примечание: я не включил свой код длятип DateOnly (для простоты), но я могу добавить его по запросу

Ответы [ 2 ]

4 голосов
/ 14 марта 2012

Мне удалось ответить на мою собственную проблему, реализовав IFormattable в моем пользовательском типе:

Public Overloads Function ToString(fmt As String, provider As IFormatProvider) As String Implements IFormattable.ToString
    Return String.Format("{0:" + fmt + "}", _dateValue)
End Function

Это, похоже, помогает.

1 голос
/ 14 марта 2012

у меня работает (C #):

  DateTime date = new DateTime(2012, 1, 2);
  var dateString = String.Format("{0:ddd}", date); //Mon

В любом случае, как насчет ниже:

 DateTime date = new DateTime(2012, 1, 2);
 var dayName= date.DayOfWeek.ToString();

если DateOnly - это DateTime, вы можете сделать:

DateOnly.DayOfWeek.ToString();

для всей культуры

System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.DayNames[(int) 
                System.DateTime.Now.DayOfWeek];

подробнее на http://msdn.microsoft.com/en-us/library/system.datetime.dayofweek.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...