понедельник, 19 декабря 2011 г.

DateTime. Методы. Часть 3


Сегодня будет еще не последняя часть серии статей про тип DateTime. Сегодня я рассмотрю только метод ToString, потом – будет еще одна статья и все о DateTime. Но о работе с датой мы еще не забудем полностью – нам надо еще рассмотреть дополнительный класс для работы с интервалами – TimeSpan.

Кстати, кроме VB.NET — надо еще интересоваться и остальным миром, особенно — нашим законом, так как законодательство Российской Федерации довольно сложный предмет. А чтобы в нем не заблудиться — надо пользоваться сервисом, который предоставляет отличный поиск по законам нашей страны (по ссылке можете посмотреть). Я этим сервисом пользуюсь для поиска законов, и вам советую.

Почитали законы — теперь вернемся к статье. Получилось так, что описание метода ToString оказалось довольно объемным (большие примеры, да и сам метод довольно мощный).

ToString

Самое известное свойство наверно. Как и во всех остальных случаях – данное свойство преобразует дату/время в текст по определенному формату. В данный метод передается формат – и по этому формату и производится форматирование возвращаемой строки. Существует несколько различных способов форматирования, некоторые из которых я представлю ниже:

Dim dd As DateTime = #11/11/2011 11:11:59 AM#
Me.ListBox1.Font = New System.Drawing.Font("Tahoma", 12.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(204, Byte))
ListBox1.Items.Add("d: " + dd.ToString("d") + " Коротка дата")
ListBox1.Items.Add("D: " + dd.ToString("D") + " Длинная дата")
ListBox1.Items.Add("f: " + dd.ToString("f") + " Длинная дата и короткое время")
ListBox1.Items.Add("F: " + dd.ToString("F") + " Длинная дата и длинное время")
ListBox1.Items.Add("g: " + dd.ToString("g") + " Коротка дата и короткое время")
ListBox1.Items.Add("G: " + dd.ToString("G") + " Коротка дата и длинное время")
ListBox1.Items.Add("m: " + dd.ToString("m") + " Месяц и день") 'm M
ListBox1.Items.Add("r: " + dd.ToString("r") + " Среднеевропейское время по Гринвичу") 'r R
ListBox1.Items.Add("s: " + dd.ToString("s") + " Сортируемый формат даты/времени")
ListBox1.Items.Add("t: " + dd.ToString("t") + " Короткое время")
ListBox1.Items.Add("T: " + dd.ToString("T") + " Длинное время")
ListBox1.Items.Add("u: " + dd.ToString("u") + " Универсальный длинный сортируемый формат даты/времени")
ListBox1.Items.Add("U: " + dd.ToString("U") + " Универсальный короткий сортируемый формат даты/времени")
ListBox1.Items.Add("y: " + dd.ToString("y") + " Месяц и год") 'y Y

Как вы можете понять – в метод ToString надо передавать букву формата. Для большинства форматов заглавные и строчные буквы различаются. В комментариях я указал, у каких форматов можно игнорировать регистр. У меня получилась следующая программа:


Также можно использовать (создавать) и пользовательские форматы. Для этого надо в метод ToString передать сам формат выходящей строки. Формат может состоять из следующих элементов: dd, MM, yyyy, hh, mm, ss, zz – день, месяц, год, час, минута, секунда и часовой пояс. Их, конечно же, можно комбинировать как вам захочется:

Dim dd As DateTime = #11/15/2011 8:09:59 AM#
Me.ListBox1.Font = New System.Drawing.Font("Tahoma", 12.0!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(204, Byte))
ListBox1.Items.Add(dd.ToString + " - дата/время")
ListBox1.Items.Add(dd.ToString("dd") + " - dd")
ListBox1.Items.Add(dd.ToString("ddd") + " - ddd")
ListBox1.Items.Add(dd.ToString("dddd") + " - dddd")
ListBox1.Items.Add(dd.ToString("MM") + " - MM")
ListBox1.Items.Add(dd.ToString("MMM") + " - MMM")
ListBox1.Items.Add(dd.ToString("MMMM") + " - MMMM")
ListBox1.Items.Add(dd.ToString("yy") + " - yy")
ListBox1.Items.Add(dd.ToString("yyyy") + " - yyyy")
ListBox1.Items.Add(dd.ToString("MMMM d") + " - MMMM d")
ListBox1.Items.Add(dd.ToString("y/m/d") + " - y/m/d")
ListBox1.Items.Add(dd.ToString("hh:mm:ss") + " - hh:mm:ss")
ListBox1.Items.Add(dd.ToString("h:m:s") + " - h:m:s")
ListBox1.Items.Add(dd.ToString("zz") + " - zz")

В результате работы появится следующая форма:


На этом о методе ToString закончим. В следующий раз будут рассмотрены разом все остальные методы класса DateTime.

Комментариев нет:

Отправить комментарий