Примеры работы с датой и временем в C#
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
// Получаем текущую дату и время DateTime now = DateTime.Now; // Выводим результат Console.WriteLine(now); // Выведет: 2/25/2011 11:12:13 AM // Получаем объект с указанной датой DateTime date1 = new DateTime(2008, 8, 29, 19, 27, 15); DateTime date2 = DateTime.UtcNow; Console.WriteLine(date1.ToString("d, M", CultureInfo.InvariantCulture)); // Выведет: 29, 8 Console.WriteLine(date1.ToString("d MMMM", CultureInfo.CreateSpecificCulture("en-US"))); // Выведет: 29 August Console.WriteLine(date1.ToString("hh:mm:ss.f", CultureInfo.InvariantCulture)); // Выведет: 07:27:15.0 Console.WriteLine(date1.ToString("%y")); // Выведет: 8 Console.WriteLine(String.Format("{0:%z}, {0:zz}, {0:zzz}", date2)); // Выведет: -7, -07, -07:00 // Еще один пример форматирования даты и времени DateTime date3 = new DateTime(2009, 06, 15, 13, 45, 30, 90); string fmt1 = "h \h m \m"; // Либо можно задать так: @"h h m m" Console.WriteLine("{0} ({1}) -> {2}", date, fmt1, date.ToString(fmt1)); // Выведет: 6/15/2009 1:45:30 PM (h h m m) -> 1 h 45 m |
Спецификаторы для форматирования даты и времени
Формат | Описание | Пример |
---|---|---|
“d” | День месяца от 1 до 31 | 6/15/2009 1:45:30 PM -> 15 |
“dd” | День месяца от 01 до 31 | 6/1/2009 1:45:30 PM -> 01 |
“ddd” | Сокращенное название дня недели | 6/15/2009 1:45:30 PM -> Пн (ru-RU) |
“dddd” | Полное название дня недели | 6/15/2009 1:45:30 PM -> понедельник (ru-RU) |
“f” | Число секунд сокращенное до одного знака | 6/15/2009 13:45:30.617 -> 6 |
“fffffff” | Число секунд сокращенное до семи знаков (т.е количество f может быть от 1 до 7) | 6/15/2009 13:45:30.6175425 -> 6175425 |
“F” | Число секунд сокращенное до одного знака, а если сокращается до нуля, то ничего не возвращается | 6/15/2009 13:45:30.617 -> 6 6/15/2009 13:45:30.050 -> (no output) |
“FFFFFFF” | Число секунд сокращенное до семи знаков (т.е количество F может быть от 1 до 7), а c отбрасыванием лишних нулей в конце | 6/15/2009 13:45:30.6175425 -> 6175425 6/15/2009 13:45:30.0001150 -> 000115 |
“g”, “gg” | Период или эра | 6/15/2009 1:45:30 PM -> A.D. |
“h” | Часов (12 часовой формат) от 1 до 12 | 6/15/2009 1:45:30 AM -> 1 6/15/2009 1:45:30 PM -> 1 |
“hh” | Часов (12 часовой формат) от 01 до 12 | 6/15/2009 1:45:30 AM -> 01 6/15/2009 1:45:30 PM -> 01 |
“H” | Часов (24 часовой формат) от 0 до 23 | 6/15/2009 1:45:30 AM -> 1 6/15/2009 1:45:30 PM -> 13 |
“HH” | Часов (24 часовой формат) от 00 до 23 | 6/15/2009 1:45:30 AM -> 01 6/15/2009 1:45:30 PM -> 13 |
“K” | Информация о часовой зоне | 6/15/2009 1:45:30 PM, Kind Utc -> Z 6/15/2009 1:45:30 PM, Kind Local -> -07:00 (часовой пояс от настроек компьютера) |
“m” | Минут от 0 до 59 | 6/15/2009 1:09:30 AM -> 9 |
“mm” | Минут от 00 до 59 | 6/15/2009 1:09:30 AM -> 09 |
“M” | Месяц от 1 до 12 | 6/15/2009 1:45:30 PM -> 6 |
“MM” | Месяц от 01 до 12 | 6/15/2009 1:45:30 PM -> 06 |
“MMM” | Сокращенное название месяца | 6/15/2009 1:45:30 PM -> Янв (ru-RU) |
“MMMM” | Полное название месяца | 6/15/2009 1:45:30 PM -> Июнь (ru-RU) |
“s” | Секунд от 1 до 59 | 6/15/2009 1:45:09 PM -> 9 |
“ss” | Секунд от 01 до 59 | 6/15/2009 1:45:09 PM -> 09 |
“t” | Первая буква постфикса AM/PM к количеству часов (для 12 часового формата) | 6/15/2009 1:45:30 PM -> P (en-US) |
“tt” | Постфикс AM/PM к количеству часов (для 12 часового формата) | 6/15/2009 1:45:30 PM -> PM (en-US) |
“y” | Год от 0 до 99 текущего столетия | 6/15/2009 1:45:30 PM -> 9 |
“yy” | Год от 00 до 99 текущего столетия | 6/15/2009 1:45:30 PM -> 09 |
“yyy” | Год c минимум тремя знаками | 1/1/0900 12:00:00 AM -> 900 6/15/20091:45:30 PM -> 2009 |
“yyyy” | Год с четырьмя знаками | 6/15/2009 1:45:30 PM -> 2009 |
“yyyyy” | Год с пятью знаками | 6/15/2009 1:45:30 PM -> 02009 |
“z” | Смещение часового пояса от UTC | 6/15/2009 1:45:30 PM -07:00 -> -7 |
“zz” | Смещение (2 значное) часового пояса от UTC | 6/15/2009 1:45:30 PM -07:00 -> -07 |
“zzz” | Смещение часового пояса от UTC с дополнительным отображением минут | 6/15/2009 1:45:30 PM -07:00 -> -07:00 |
“:” | Разделитель времени | 6/15/2009 1:45:30 PM -> : (en-US) |
“/” | Разделитель даты | 6/15/2009 1:45:30 PM -> / (en-US) |
“string” | Произвольная строка в качестве разделителя, может также заключаться в одинарные кавычки | 6/15/2009 1:45:30 PM (“arr:” h:m t) -> arr: 1:45 P |
% | Префикс определяет, что следующий символ является форматом вывода | 6/15/2009 1:45:30 PM (%h) -> 1 |
Префикс для спец символов, превращая их в обычные буквы | 6/15/2009 1:45:30 PM (h h) -> 1 h |