Как преобразовать строку к дате
Задача в том сделать расчет даты между текущем временем и датой регистрации юр. лица, если это меньше или равно 3 месяца то выполнять действии
Есть к примеру БИН: 1612300854 здесь первые 4 цифры это год и месяц регистрации
И текущая дата 2016-12-13
Попытался так сделать:
string curDate = DateTime.Now.ToString("yyyy.MM.dd"); var b = iinbin.Substring(0, 4); var s = curDate.Substring(2, 2) + curDate.Substring(5, 2); var calculation = Convert.ToInt32(s) - Convert.ToInt32(b) if(calculation >= 0 & calculation
Но это условие не срабатывает если текущая дата 2017-01-15 ,
а у юр лица дата рег декабрь 2016 года( 1612300854 ) 1701-1612=89 Думаю нужно преобразовать строку 1612 или 1701 на дату
А потом почитать кол-во дней и условие если больше 90 дней Ожидаю результат : 1612 —> 2016-12- 01(любой день)
Как преобразовать datetime в string c
Для форматирования вывода дат и времени применяется ряд строковых форматов:
Полный формат даты. Например, 17 июля 2015 г.
Краткий формат даты. Например, 17.07.2015
Полный формат даты и времени. Например, 17 июля 2015 г. 17:04:43
Полный формат даты и краткий формат времени. Например, 17 июля 2015 г. 17:04
Краткий формат даты и полный формат времени. Например, 17.07.2015 17:04:43
Краткий формат даты и времени. Например, 17.07.2015 17:04
Формат дней месяца. Например, 17 июля
Формат обратного преобразования даты и времени. Вывод даты и времени в соответствии со стандартом ISO 8601 в формате «yyyy’-‘MM’-‘dd’T’HH’:’mm’:’ss’.’fffffffzzz». Например, 2015-07-17T17:04:43.4092892+03:00
Время по Гринвичу. Например, Fri, 17 Jul 2015 17:04:43 GMT
Сортируемый формат даты и времени. Например, 2015-07-17T17:04:43
Полный формат времени. Например, 17:04:43
Краткий формат времени. Например, 17:04
Полный универсальный полный формат даты и времени. Например, 17 июля 2015 г. 17:04:43
Краткий универсальный полный формат даты и времени. Например, 2015-07-17 17:04:43Z
Формат года. Например, Июль 2015
Выведем текущею дату и время во всех форматах:
DateTime now = DateTime.Now; Console.WriteLine($"D: "); Console.WriteLine($"d: "); Console.WriteLine($"F: "); Console.WriteLine($"f: "); Console.WriteLine($"G: "); Console.WriteLine($"g: "); Console.WriteLine($"M: "); Console.WriteLine($"O: "); Console.WriteLine($"o: "); Console.WriteLine($"R: "); Console.WriteLine($"s: "); Console.WriteLine($"T: "); Console.WriteLine($"t: "); Console.WriteLine($"U: "); Console.WriteLine($"u: "); Console.WriteLine($"Y: ");
D: 6 января 2022 г. d: 06.01.2022 F: 6 января 2022 г. 14:45:20 f: 6 января 2022 г. 14:45 G: 06.01.2022 14:45:20 g: 06.01.2022 14:45 M: 6 января O: 2022-01-06T14:45:20.3942344+04:00 o: 2022-01-06T14:45:20.3942344+04:00 R: Thu, 06 Jan 2022 14:45:20 GMT s: 2022-01-06T14:45:20 T: 14:45:20 t: 14:45 U: 6 января 2022 г. 10:45:20 u: 2022-01-06 14:45:20Z Y: январь 2022 г.
Настройка формата времени и даты
Не всегда удобно использование встроенных форматов даты и времени. Иногда бывает необходимо задать сообственную форму отображения объекта DateTime. В этом случае мы можем составить свой формат из описателей:
Представляет день месяца от 1 до 31. Одноразрядные числа используются без нуля в начале
Представляет день месяца от 1 до 31. К одноразрядным числам в начале добавляется ноль
Сокращенное название дня недели
Полное название дня недели
Представляет миллисекунды. Количество символов f указывает на число разрядов в миллисекундах
Представляет период или эру (например, «н. э.»)
Часы в виде от 1 до 12. Часы с одной цифрой не дополняются нулем
Часы в виде от 01 до 12. Часы с одной цифрой дополняются нулем
Часы в виде от 0 до 23. Часы с одной цифрой не дополняются нулем
Часы в виде от 0 до 23. Часы с одной цифрой дополняются нулем
Минуты от 0 до 59. Минуты с одной цифрой не дополняются начальным нулем
Минуты от 0 до 59. Минуты с одной цифрой дополняются начальным нулем
Месяц в виде от 1 до 12
Месяц в виде от 1 до 12. Месяц с одной цифрой дополняется начальным нулем
Сокращенное название месяца
Полное название месяца
Секунды в виде числа от 0 до 59. Секунды с одной цифрой не дополняются начальным нулем
Секунды в виде числа от 0 до 59. Секунды с одной цифрой дополняются начальным нулем
Первые символы в обозначениях AM и PM
Представляет год как число из одной или двух цифр. Если год имеет более двух цифр, то в результате отображаются только две младшие цифры
Представляет год как число из одной или двух цифр. Если год имеет более двух цифр, то в результате отображаются только две младшие цифры. Если год имеет одну цифру, то он дополняется начальным нулем
Год из трех цифр
Год из четырех цифр
Год из пяти цифр. Если в году меньше пяти цифр, то он дополняется начальными нулями
Представляет смещение в часах относительно времени UTC
Представляет смещение в часах относительно времени UTC. Если смещение представляет одну цифру, то она дополняется начальным нулем.
Создадим пару своих форматов:
DateTime now = DateTime.Now; Console.WriteLine(now.ToString("hh:mm:ss")); Console.WriteLine(now.ToString("dd.MM.yyyy"));
02:46:38 06.01.2022
- Глава 1. Введение в C#
- Язык C# и платформа .NET
- Первая программа на C# с .NET CLI
- Начало работы с Visual Studio. Первая программа
- Первое приложение в WSL
- Структура программы
- Переменные и константы
- Литералы
- Типы данных
- Консольный ввод-вывод
- Арифметические операции
- Поразрядные операции
- Операции присваивания
- Преобразования базовых типов данных
- Условные выражения
- Конструкция if..else и тернарная операция
- Циклы
- Массивы
- Задачи с массивами
- Методы
- Параметры методов
- Возвращение значения и оператор return
- Передача параметров по ссылке и значению. Выходные параметры
- Массив параметров и ключевое слово params
- Рекурсивные функции
- Локальные функции
- Конструкция switch
- Перечисления enum
- Классы и объекты
- Конструкторы, инициализаторы и деконструкторы
- Класс Program и метод Main. Программы верхнего уровня
- Структуры
- Типы значений и ссылочные типы
- Область видимости (контекст) переменных
- Пространства имен
- Глобальные пространства имен
- Подключение пространств имен по умолчанию
- Создание библиотеки классов в Visual Studio
- Создание библиотеки классов с помощью .NET CLI
- Модификаторы доступа
- Свойства
- Перегрузка методов
- Статические члены и модификатор static
- Установка пакетов Nuget
- Константы, поля и структуры для чтения
- Null и ссылочные типы
- Null и значимые типы
- Проверка на null, операторы ?. и ??
- Псевдонимы типов и статический импорт
- Наследование
- Преобразование типов
- Виртуальные методы и свойства
- Скрытие методов и свойств
- Различие переопределения и скрытия методов
- Абстрактные классы
- Класс System.Object и его методы
- Обобщенные типы
- Ограничения обобщений
- Наследование обобщенных типов
- Конструкция try..catch..finally
- Блок catch и фильтры исключений
- Типы исключений. Класс Exception
- Генерация исключения и оператор throw
- Создание классов исключений
- Поиск блока catch при обработке исключений
- Делегаты
- Применение делегатов
- Анонимные методы
- Лямбды
- События
- Ковариантность и контравариантность делегатов
- Делегаты Action, Predicate и Func
- Замыкания
- Определение интерфейсов
- Применение интерфейсов
- Явная реализация интерфейсов
- Реализация интерфейсов в базовых и производных классах
- Наследование интерфейсов
- Интерфейсы в обобщениях
- Копирование объектов. Интерфейс ICloneable
- Сортировка объектов. Интерфейс IComparable
- Ковариантность и контравариантность обобщенных интерфейсов
- Определение операторов
- Перегрузка операций преобразования типов
- Индексаторы
- Переменные-ссылки и возвращение ссылки
- Методы расширения
- Частичные классы и методы
- Анонимные типы
- Кортежи
- Records
- Паттерн типов
- Паттерн свойств
- Паттерны кортежей
- Позиционный паттерн
- Реляционный и логический паттерны
- Паттерны списков
- Список List
- Двухсвязный список LinkedList
- Очередь Queue
- Стек Stack
- Словарь Dictionary
- Класс ObservableCollection
- Интерфейсы IEnumerable и IEnumerator
- Итераторы и оператор yield
- Класс Array и массивы
- Span
- Индексы и диапазоны
- Строки и класс System.String
- Операции со строками
- Форматирование и интерполяция строк
- Класс StringBuilder
- Регулярные выражения
- Структура DateTime
- Форматирование дат и времени
- DateOnly и TimeOnly
- Отложенная инициализация и тип Lazy
- Математические вычисления и класс Math
- Преобразование типов и класс Convert
- Введение в многопоточность. Класс Thread
- Создание потоков. Делегат ThreadStart
- Потоки с параметрами и ParameterizedThreadStart
- Синхронизация потоков
- Мониторы
- Класс AutoResetEvent
- Мьютексы
- Семафоры
- Задачи и класс Task
- Работа с классом Task
- Задачи продолжения
- Класс Parallel
- Отмена задач и параллельных операций. CancellationToken
- Асинхронные методы, async и await
- Возвращение результата из асинхронного метода
- Последовательное и параллельное выполнение. Task.WhenAll и Task.WhenAny
- Обработка ошибок в асинхронных методах
- Асинхронные стримы
- Основы LINQ
- Проекция данных
- Фильтрация коллекции
- Сортировка
- Объединение, пересечение и разность коллекций
- Агрегатные операции
- Получение части коллекции
- Группировка
- Соединение коллекций
- Проверка наличия и получение элементов
- Отложенное и немедленное выполнение LINQ
- Делегаты в запросах LINQ
- Введение в Parallel LINQ. Метод AsParallel
- Метод AsOrdered
- Обработка ошибок и отмена параллельных операции
- Введение в рефлексию. Класс System.Type
- Применение рефлексии и исследование типов
- Исследование методов и конструкторов с помощью рефлексии
- Исследование полей и свойств с помощью рефлексии
- Динамическая загрузка сборок и позднее связывание
- Атрибуты в .NET
- DLR в C#. Ключевое слово dynamic
- DynamicObject и ExpandoObject
- Использование IronPython в .NET
- Сборщик мусора в C#
- Финализируемые объекты. Метод Dispose
- Конструкция using
- Указатели
- Указатели на структуры, члены классов и массивы
- Работа с дисками
- Работа с каталогами
- Работа с файлами. Классы File и FileInfo
- FileStream. Чтение и запись файла
- Чтение и запись текстовых файлов. StreamReader и StreamWriter
- Бинарные файлы. BinaryWriter и BinaryReader
- Архивация и сжатие файлов
- Сериализация в JSON. JsonSerializer
- XML-Документы
- Работа с XML с помощью System.Xml
- Изменение XML-документа
- XPath
- Linq to Xml. Создание Xml-документа
- Выборка элементов в LINQ to XML
- Изменение документа в LINQ to XML
- Сериализация в XML. XmlSerializer
- Процессы
- Домены приложений
- AssemblyLoadContext и динамическая загрузка и выгрузка сборок
- Native AOT
- Нововведения в C# 11
- Нововведения в C# 12
Помощь сайту
410011174743222
Перевод на карту
Номер карты:
4048415020898850Контакты для связи: metanit22@mail.ru
Copyright © metanit.com, 2024. Все права защищены.
Работа с датами и временем
Для работы с датами и временем в .NET предназначена структура DateTime . Она представляет дату и время от 00:00:00 1 января 0001 года до 23:59:59 31 декабря 9999 года.
Для создания нового объекта DateTime также можно использовать конструктор. Пустой конструктор создает начальную дату:
DateTime dateTime = new DateTime(); Console.WriteLine(dateTime); // 01.01.0001 0:00:00
То есть мы получим минимально возможное значение, которое также можно получить следующим образом:
Console.WriteLine(DateTime.MinValue);
Чтобы задать конкретную дату, нужно использовать один из конструкторов, принимающих параметры:
DateTime date1 = new DateTime(2015, 7, 20); // год - месяц - день Console.WriteLine(date1); // 20.07.2015 0:00:00
DateTime date1 = new DateTime(2015, 7, 20, 18, 30, 25); // год - месяц - день - час - минута - секунда Console.WriteLine(date1); // 20.07.2015 18:30:25
Если необходимо получить текущую время и дату, то можно использовать ряд свойств DateTime:
Console.WriteLine(DateTime.Now); Console.WriteLine(DateTime.UtcNow); Console.WriteLine(DateTime.Today);
20.07.2015 11:43:33 20.07.2015 8:43:33 20.07.2015 0:00:00
Свойство DateTime.Now берет текущую дату и время компьютера, DateTime.UtcNow — дата и время относительно времени по Гринвичу (GMT) и DateTime.Today — только текущая дата.
При работе с датами надо учитывать, что по умолчанию для представления дат применяется григорианский календарь. Но что будет, если мы захотим получить день недели для 5 октября 1582 года:
DateTime someDate = new DateTime(1582, 10, 5); Console.WriteLine(someDate.DayOfWeek);
Консоль высветит значение Tuesday, то есть вторник. Однако, как может быть известно из истории, впервые переход с юлианского календаря на григорианский состоялся в октябре 1582 года. Тогда после даты 4 октября (четверг) (еще по юлианскому календарю) сразу перешли к 15 октября (пятница)(уже по григорианскому календарю). Таким образом, фактически выкинули 10 дней. То есть после 4 октября шло 15 октября.
В большинстве случаев данный факт вряд ли как-то повлияет на вычисления, однако при работе с очень давними датами данный аспект следует учитывать.
Операции с DateTime
Основные операции со структурой DateTime связаны со сложением или вычитанием дат. Например, надо к некоторой дате прибавить или, наоборот, отнять несколько дней.
Для добавления дат используется ряд методов:
- Add(TimeSpan value) : добавляет к дате значение TimeSpan
- AddDays(double value) : добавляет к текущей дате несколько дней
- AddHours(double value) : добавляет к текущей дате несколько часов
- AddMinutes(double value) : добавляет к текущей дате несколько минут
- AddMonths(int value) : добавляет к текущей дате несколько месяцев
- AddYears(int value) : добавляет к текущей дате несколько лет
Например, добавим к некоторой дате 3 часа:
DateTime date1 = new DateTime(2015, 7, 20, 18, 30, 25); // 20.07.2015 18:30:25 Console.WriteLine(date1.AddHours(3)); // 20.07.2015 21:30:25
Для вычитания дат используется метод Subtract(DateTime date) :
DateTime date1 = new DateTime(2015, 7, 20, 18, 30, 25); // 20.07.2015 18:30:25 DateTime date2 = new DateTime(2015, 7, 20, 15, 30, 25); // 20.07.2015 15:30:25 Console.WriteLine(date1.Subtract(date2)); // 03:00:00
Здесь даты различаются на три часа, поэтому результатом будет дата «03:00:00».
Метод Substract не имеет возможностей для отдельного вычитания дней, часов и так далее. Но это и не надо, так как мы можем передавать в метод AddDays() и другие методы добавления отрицательные значения:
// вычтем три часа DateTime date1 = new DateTime(2015, 7, 20, 18, 30, 25); // 20.07.2015 18:30:25 Console.WriteLine(date1.AddHours(-3)); // 20.07.2015 15:30:25
Кроме операций сложения и вычитания еще есть ряд методов форматирования дат:
DateTime date1 = new DateTime(2015, 7, 20, 18, 30, 25); Console.WriteLine(date1.ToLocalTime()); // 20.07.2015 21:30:25 Console.WriteLine(date1.ToUniversalTime()); // 20.07.2015 15:30:25 Console.WriteLine(date1.ToLongDateString()); // 20 июля 2015 г. Console.WriteLine(date1.ToShortDateString()); // 20.07.2015 Console.WriteLine(date1.ToLongTimeString()); // 18:30:25 Console.WriteLine(date1.ToShortTimeString()); // 18:30
Метод ToLocalTime() преобразует время UTC в локальное время, добавляя смещение относительно времени по Гринвичу. Метод ToUniversalTime() , наоборот, преобразует локальное время во время UTC, то есть вычитает смещение относительно времени по Гринвичу. Остальные методы преобразуют дату к определенному формату.
Date Time. To String Метод
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Преобразует значение текущего объекта DateTime в эквивалентное ему строковое представление.
Перегрузки
Преобразует значение текущего объекта DateTime в эквивалентное ему строковое представление с использованием указанных сведений о форматировании, связанных с языком и региональными параметрами.
Преобразует значение текущего объекта DateTime в эквивалентное строковое представление с использованием указанного формата и соглашений о форматировании, принятых для текущего языка и региональных параметров.
Преобразует значение текущего объекта DateTime в эквивалентное строковое представление с помощью соглашений о форматировании для текущего языка и региональных параметров.
Преобразует значение текущего объекта DateTime в эквивалентное ему строковое представление с использованием указанного формата и сведений об особенностях формата для данного языка и региональных параметров.
ToString(IFormatProvider)
Преобразует значение текущего объекта DateTime в эквивалентное ему строковое представление с использованием указанных сведений о форматировании, связанных с языком и региональными параметрами.
public: virtual System::String ^ ToString(IFormatProvider ^ provider);public: System::String ^ ToString(IFormatProvider ^ provider);public string ToString (IFormatProvider provider);public string ToString (IFormatProvider? provider);override this.ToString : IFormatProvider -> stringPublic Function ToString (provider As IFormatProvider) As StringПараметры
Объект, предоставляющий сведения о форматировании для определенного языка и региональных параметров.
Возвращаемое значение
Строковое представление значения текущего объекта DateTime, заданное параметром provider .
Реализации
Исключения
Дата и время находятся за пределами диапазона дат, поддерживаемого календарем, используемым в provider .
Примеры
В следующем примере отображается строковое представление даты и времени с помощью CultureInfo объектов, представляющих пять разных языков и региональных параметров.
using System; using System.Globalization; public class ToStringExample3 < public static void Main2() < CultureInfo[] cultures = new CultureInfo[] ; DateTime thisDate = new DateTime(2009, 5, 1, 9, 0, 0); foreach (CultureInfo culture in cultures) < string cultureName; if (string.IsNullOrEmpty(culture.Name)) cultureName = culture.NativeName; else cultureName = culture.Name; Console.WriteLine("In , ", cultureName, thisDate.ToString(culture)); > > > // The example produces the following output: // In Invariant Language (Invariant Country), 05/01/2009 09:00:00 // In en-US, 5/1/2009 9:00:00 AM // In fr-FR, 01/05/2009 09:00:00 // In de-DE, 01.05.2009 09:00:00 // In es-ES, 01/05/2009 9:00:00 // In ja-JP, 2009/05/01 9:00:00open System open System.Globalization let cultures = [ CultureInfo.InvariantCulture CultureInfo "en-us" CultureInfo "fr-fr" CultureInfo "de-DE" CultureInfo "es-ES" CultureInfo "ja-JP" ] let thisDate = DateTime(2009, 5, 1, 9, 0, 0) for culture in cultures do let cultureName = if String.IsNullOrEmpty culture.Name then culture.NativeName else culture.Name printfn $"In , " // The example produces the following output: // In Invariant Language (Invariant Country), 05/01/2009 09:00:00 // In en-US, 5/1/2009 9:00:00 AM // In fr-FR, 01/05/2009 09:00:00 // In de-DE, 01.05.2009 09:00:00 // In es-ES, 01/05/2009 9:00:00 // In ja-JP, 2009/05/01 9:00:00Imports System.Globalization Module Example4 Public Sub Main4() Dim cultures() As CultureInfo = Dim thisDate As Date = #5/1/2009 9:00AM# For Each culture As CultureInfo In cultures Dim cultureName As String If String.IsNullOrEmpty(culture.Name) Then cultureName = culture.NativeName Else cultureName = culture.Name End If Console.WriteLine("In , ", cultureName, thisDate.ToString(culture)) Next End Sub End Module ' The example produces the following output: ' In Invariant Language (Invariant Country), 05/01/2009 09:00:00 ' In en-US, 5/1/2009 9:00:00 AM ' In fr-FR, 01/05/2009 09:00:00 ' In de-DE, 01.05.2009 09:00:00 ' In es-ES, 01/05/2009 9:00:00 ' In ja-JP, 2009/05/01 9:00:00Комментарии
Значение текущего DateTime объекта форматируется с помощью общего описателя формата даты и времени (G), который форматирует выходные данные с использованием шаблона короткой даты и длинного шаблона времени.
Формат шаблона короткой даты и длительного времени определяется параметром provider . Параметр provider может иметь любой из следующих значений:
- Объект CultureInfo , представляющий язык и региональные параметры, соглашения о форматировании которых должны отражаться в возвращаемой строке. Объект DateTimeFormatInfo , возвращаемый свойством CultureInfo.DateTimeFormat , определяет форматирование возвращаемой строки.
- Объект DateTimeFormatInfo , определяющий формат данных даты и времени.
- Пользовательский объект, реализующий IFormatProvider интерфейс . Его GetFormat метод возвращает DateTimeFormatInfo объект , предоставляющий сведения о форматировании.
Если provider имеет значение null , используется объект , DateTimeFormatInfo связанный с текущим языком и региональными параметрами. Для получения дополнительной информации см. CultureInfo.CurrentCulture.
Примечания для тех, кто вызывает этот метод
Метод ToString(IFormatProvider) возвращает строковое представление даты и времени в календаре, используемом языком и региональными параметрами, представленными параметром provider . Его календарь определяется свойством Calendar . Если значение текущего DateTime экземпляра является более ранним или более поздним, чем MinSupportedDateTimeMaxSupportedDateTime, метод создает исключение ArgumentOutOfRangeException. Ниже приведен пример. Он пытается отформатировать дату, которая находится за пределами JapaneseCalendar диапазона класса .
using System; using System.Globalization; public class Example < public static void Main() < CultureInfo jaJP = new CultureInfo("ja-JP"); jaJP.DateTimeFormat.Calendar = new JapaneseCalendar(); DateTime date1 = new DateTime(1867, 1, 1); try < Console.WriteLine(date1.ToString(jaJP)); >catch (ArgumentOutOfRangeException) < Console.WriteLine("is earlier than or later than ", date1, jaJP.DateTimeFormat.Calendar.MinSupportedDateTime, jaJP.DateTimeFormat.Calendar.MaxSupportedDateTime); > > > // The example displays the following output: // 1/1/1867 is earlier than 9/8/1868 or later than 12/31/9999 >open System open System.Globalization let jaJP = CultureInfo "ja-JP" jaJP.DateTimeFormat.Calendar " with :? ArgumentOutOfRangeException -> printfn $" is earlier than or later than " // The example displays the following output: // 1/1/1867 is earlier than 9/8/1868 or later than 12/31/9999 >Imports System.Globalization Module Example Public Sub Main() Dim jaJP As New CultureInfo("ja-JP") jaJP.DateTimeFormat.Calendar = New JapaneseCalendar() Dim date1 As Date = #01/01/1867# Try Console.WriteLine(date1.ToString(jaJP)) Catch e As ArgumentOutOfRangeException Console.WriteLine(" is earlier than or later than ", _ date1, _ jaJP.DateTimeFormat.Calendar.MinSupportedDateTime, _ jaJP.DateTimeFormat.Calendar.MaxSupportedDateTime) End Try End Sub End Module ' The example displays the following output: ' 1/1/1867 is earlier than 9/8/1868 or later than 12/31/9999См. также раздел
- DateTimeFormatInfo
- CultureInfo
Применяется к
ToString(String)
Преобразует значение текущего объекта DateTime в эквивалентное строковое представление с использованием указанного формата и соглашений о форматировании, принятых для текущего языка и региональных параметров.
public: System::String ^ ToString(System::String ^ format);public string ToString (string format);public string ToString (string? format);override this.ToString : string -> stringPublic Function ToString (format As String) As StringПараметры
Строка стандартного или пользовательского формата даты и времени.
Возвращаемое значение
Строковое представление значения текущего объекта DateTime, заданное параметром format .
Исключения
Длина format равна 1, и он не является одним из символов описателя формата, определенного для DateTimeFormatInfo.
Параметр format не содержит допустимый пользовательский шаблон формата.
Дата и время находятся за пределами диапазона дат, поддерживаемого календарем, принятым для текущего языка и региональных параметров.
Примеры
В следующем примере используются все строки стандартного формата даты и времени, а также выбор настраиваемых строк формата даты и времени для отображения строкового DateTime представления значения. Текущий язык и региональные параметры потока для примера — en-US.
using System; public class DateToStringExample2 < public static void Main() < DateTime dateValue = new DateTime(2008, 6, 15, 21, 15, 07); // Create an array of standard format strings. string[] standardFmts = ; // Output date and time using each standard format string. foreach (string standardFmt in standardFmts) Console.WriteLine(": ", standardFmt, dateValue.ToString(standardFmt)); Console.WriteLine(); // Create an array of some custom format strings. string[] customFmts = ; // Output date and time using each custom format string. foreach (string customFmt in customFmts) Console.WriteLine("'': ", customFmt, dateValue.ToString(customFmt)); > > // This example displays the following output to the console: // d: 6/15/2008 // D: Sunday, June 15, 2008 // f: Sunday, June 15, 2008 9:15 PM // F: Sunday, June 15, 2008 9:15:07 PM // g: 6/15/2008 9:15 PM // G: 6/15/2008 9:15:07 PM // m: June 15 // o: 2008-06-15T21:15:07.0000000 // R: Sun, 15 Jun 2008 21:15:07 GMT // s: 2008-06-15T21:15:07 // t: 9:15 PM // T: 9:15:07 PM // u: 2008-06-15 21:15:07Z // U: Monday, June 16, 2008 4:15:07 AM // y: June, 2008 // // 'h:mm:ss.ff t': 9:15:07.00 P // 'd MMM yyyy': 15 Jun 2008 // 'HH:mm:ss.f': 21:15:07.0 // 'dd MMM HH:mm:ss': 15 Jun 21:15:07 // '\Mon\t\h\: M': Month: 6 // 'HH:mm:ss.ffffzzz': 21:15:07.0000-07:00open System let dateValue = DateTime(2008, 6, 15, 21, 15, 07) // Create a list of standard format strings. let standardFmts = [ "d"; "D"; "f"; "F"; "g"; "G"; "m"; "o" "R"; "s"; "t"; "T"; "u"; "U"; "y" ] // Output date and time using each standard format string. for standardFmt in standardFmts do printfn $": " printfn "" // Create a list of some custom format strings. let customFmts = [ "h:mm:ss.ff t"; "d MMM yyyy"; "HH:mm:ss.f"; "dd MMM HH:mm:ss"; @"\Mon\t\h\: M"; "HH:mm:ss.ffffzzz" ] // Output date and time using each custom format string. for customFmt in customFmts do printfn $"'': " // This example displays the following output to the console: // d: 6/15/2008 // D: Sunday, June 15, 2008 // f: Sunday, June 15, 2008 9:15 PM // F: Sunday, June 15, 2008 9:15:07 PM // g: 6/15/2008 9:15 PM // G: 6/15/2008 9:15:07 PM // m: June 15 // o: 2008-06-15T21:15:07.0000000 // R: Sun, 15 Jun 2008 21:15:07 GMT // s: 2008-06-15T21:15:07 // t: 9:15 PM // T: 9:15:07 PM // u: 2008-06-15 21:15:07Z // U: Monday, June 16, 2008 4:15:07 AM // y: June, 2008 // // 'h:mm:ss.ff t': 9:15:07.00 P // 'd MMM yyyy': 15 Jun 2008 // 'HH:mm:ss.f': 21:15:07.0 // 'dd MMM HH:mm:ss': 15 Jun 21:15:07 // '\Mon\t\h\: M': Month: 6 // 'HH:mm:ss.ffffzzz': 21:15:07.0000-07:00Module DateToStringExample2 Public Sub Main2() Dim dateValue As Date = #6/15/2008 9:15:07PM# ' Create an array of standard format strings. Dim standardFmts() As String = ' Output date and time using each standard format string. For Each standardFmt As String In standardFmts Console.WriteLine(": ", standardFmt, dateValue.ToString(standardFmt)) Next Console.WriteLine() ' Create an array of some custom format strings. Dim customFmts() As String = ' Output date and time using each custom format string. For Each customFmt As String In customFmts Console.WriteLine("'': ", customFmt, dateValue.ToString(customFmt)) Next End Sub End Module ' This example displays the following output to the console: ' d: 6/15/2008 ' D: Sunday, June 15, 2008 ' f: Sunday, June 15, 2008 9:15 PM ' F: Sunday, June 15, 2008 9:15:07 PM ' g: 6/15/2008 9:15 PM ' G: 6/15/2008 9:15:07 PM ' m: June 15 ' o: 2008-06-15T21:15:07.0000000 ' R: Sun, 15 Jun 2008 21:15:07 GMT ' s: 2008-06-15T21:15:07 ' t: 9:15 PM ' T: 9:15:07 PM ' u: 2008-06-15 21:15:07Z ' U: Monday, June 16, 2008 4:15:07 AM ' y: June, 2008 ' ' 'h:mm:ss.ff t': 9:15:07.00 P ' 'd MMM yyyy': 15 Jun 2008 ' 'HH:mm:ss.f': 21:15:07.0 ' 'dd MMM HH:mm:ss': 15 Jun 21:15:07 ' '\Mon\t\h\: M': Month: 6 ' 'HH:mm:ss.ffffzzz': 21:15:07.0000-07:00Комментарии
Метод ToString(String) возвращает строковое представление значения даты и времени в определенном формате, в котором используются соглашения о форматировании текущего языка и региональных параметров. Дополнительные сведения см. в разделе CultureInfo.CurrentCulture.
Параметр format должен содержать один описатель формата (см. раздел Стандартные строки формата даты и времени) или пользовательский шаблон формата (см. раздел Настраиваемые строки формата даты и времени), определяющий формат возвращаемой строки. Если format имеет значение null или является пустой строкой, используется описатель общего формата G.
Ниже приведены некоторые варианты использования этого метода.
- Получение строки, отображающей дату и время в коротком формате даты и времени текущего языка и региональных параметров. Для этого используется описатель формата «G».
- Получение строки, содержащей только месяц и год. Для этого используется строка формата «ММ/гггг». Строка формата использует разделитель даты для текущего языка и региональных параметров.
- Получение строки, содержащей дату и время в определенном формате. Например, строка формата «ММ/дд/ггггЧ:мм» отображает строку даты и времени в фиксированном формате, например «19//03//2013 18:06». Строка формата использует «/» в качестве фиксированного разделителя даты независимо от параметров языка и региональных параметров.
- Получение даты в сокращенном формате, который можно использовать для сериализации строки даты. Например, в строке формата «ггггММдд» отображается четырехзначный год, за которым следует двухзначный месяц и двухзначный день без разделителя даты.
В следующем примере эти три строки форматирования используются для отображения значения даты и времени с использованием соглашений о языках и региональных параметрах en-US и fr-FR.
using System; using System.Globalization; public class ToStringExample5 < public static void Main3() < string[] formats = < "G", "MM/yyyy", @"MM\/dd\/yyyy HH:mm", "yyyyMMdd" >; string[] cultureNames = < "en-US", "fr-FR" >; DateTime date = new DateTime(2015, 8, 18, 13, 31, 17); foreach (var cultureName in cultureNames) < var culture = new CultureInfo(cultureName); CultureInfo.CurrentCulture = culture; Console.WriteLine(culture.NativeName); foreach (var format in formats) Console.WriteLine($" : "); Console.WriteLine(); > > > // The example displays the following output: // English (United States) // G: 8/18/2015 1:31:17 PM // MM/yyyy: 08/2015 // MM\/dd\/yyyy HH:mm: 08/18/2015 13:31 // yyyyMMdd: 20150818 // // français (France) // G: 18/08/2015 13:31:17 // MM/yyyy: 08/2015 // MM\/dd\/yyyy HH:mm: 08/18/2015 13:31 // yyyyMMdd: 20150818open System open System.Globalization let formats = [ "G"; "MM/yyyy"; @"MM\/dd\/yyyy HH:mm"; "yyyyMMdd" ] let cultureNames = [ "en-US"; "fr-FR" ] let date = DateTime(2015, 8, 18, 13, 31, 17) for cultureName in cultureNames do let culture = CultureInfo cultureName CultureInfo.CurrentCulture " for format in formats do printfn $" : " printfn "" // The example displays the following output: // English (United States) // G: 8/18/2015 1:31:17 PM // MM/yyyy: 08/2015 // MM\/dd\/yyyy HH:mm: 08/18/2015 13:31 // yyyyMMdd: 20150818 // // français (France) // G: 18/08/2015 13:31:17 // MM/yyyy: 08/2015 // MM\/dd\/yyyy HH:mm: 08/18/2015 13:31 // yyyyMMdd: 20150818Imports System.Globalization Imports System.Threading Public Module Example5 Public Sub Main5() Dim formats() As String = Dim cultureNames() As String = Dim dat As New DateTime(2015, 8, 18, 13, 31, 17) For Each cultureName In cultureNames Dim culture As New CultureInfo(cultureName) CultureInfo.CurrentCulture = culture Console.WriteLine(culture.NativeName) For Each fmt In formats Console.WriteLine(" : ", fmt, dat.ToString(fmt)) Next Console.WriteLine() Next End Sub End Module ' The example displays the following output: ' English (United States) ' G: 8/18/2015 1:31:17 PM ' MM/yyyy: 08/2015 ' MM\/dd\/yyyy HH:mm: 08/18/2015 13:31 ' yyyyMMdd: 20150818 ' ' français (France) ' G: 18/08/2015 13:31:17 ' MM/yyyy: 08/2015 ' MM\/dd\/yyyy HH:mm: 08/18/2015 13:31 ' yyyyMMdd: 20150818Примечания для тех, кто вызывает этот метод
Метод ToString(String) возвращает строковое представление даты и времени в календаре, используемом текущим языком и региональными параметрами. Если значение текущего DateTime экземпляра является более ранним или более поздним, чем MinSupportedDateTimeMaxSupportedDateTime, метод создает исключение ArgumentOutOfRangeException. Ниже приведен пример. Он пытается отформатировать дату, которая находится вне диапазона HebrewCalendar класса, если текущим языком и региональными параметрами является иврит (Израиль).
using System; using System.Globalization; using System.Threading; public class Example3 < public static void Main() < DateTime date1 = new DateTime(1550, 7, 21); CultureInfo dft; CultureInfo heIL = new CultureInfo("he-IL"); heIL.DateTimeFormat.Calendar = new HebrewCalendar(); // Change current culture to he-IL. dft = Thread.CurrentThread.CurrentCulture; Thread.CurrentThread.CurrentCulture = heIL; // Display the date using the current culture's calendar. try < Console.WriteLine(date1.ToString("G")); >catch (ArgumentOutOfRangeException) < Console.WriteLine("is earlier than or later than ", date1.ToString("d", CultureInfo.InvariantCulture), heIL.DateTimeFormat.Calendar.MinSupportedDateTime.ToString("d", CultureInfo.InvariantCulture), heIL.DateTimeFormat.Calendar.MaxSupportedDateTime.ToString("d", CultureInfo.InvariantCulture)); > // Restore the default culture. Thread.CurrentThread.CurrentCulture = dft; > > // The example displays the following output: // 07/21/1550 is earlier than 01/01/1583 or later than 09/29/2239open System open System.Globalization open System.Threading let date1 = DateTime(1550, 7, 21) let heIL = CultureInfo "he-IL" heIL.DateTimeFormat.Calendar " with :? ArgumentOutOfRangeException -> printfn $"""is earlier than or later than """ // Restore the default culture. Thread.CurrentThread.CurrentCulture Imports System.Globalization Imports System.Threading Module Example Public Sub Main() Dim date1 As Date = #7/21/1550# Dim dft As CultureInfo Dim heIL As New CultureInfo("he-IL") heIL.DateTimeFormat.Calendar = New HebrewCalendar() ' Change current culture to he-IL. dft = Thread.CurrentThread.CurrentCulture Thread.CurrentThread.CurrentCulture = heIL ' Display the date using the current culture's calendar. Try Console.WriteLine(date1.ToString("G")) Catch e As ArgumentOutOfRangeException Console.WriteLine(" is earlier than or later than ", _ date1.ToString("d", CultureInfo.InvariantCulture), _ heIL.DateTimeFormat.Calendar.MinSupportedDateTime.ToString("d", CultureInfo.InvariantCulture), _ heIL.DateTimeFormat.Calendar.MaxSupportedDateTime.ToString("d", CultureInfo.InvariantCulture)) End Try ' Restore the default culture. Thread.CurrentThread.CurrentCulture = dft End Sub End Module ' The example displays the following output: ' 07/21/1550 is earlier than 01/01/1583 or later than 09/29/2239См. также раздел
- DateTimeFormatInfo
- CultureInfo
- Типы форматирования в .NET
- Строки стандартных форматов даты и времени
- Строки настраиваемых форматов даты и времени
Применяется к
ToString()
Преобразует значение текущего объекта DateTime в эквивалентное строковое представление с помощью соглашений о форматировании для текущего языка и региональных параметров.
public: override System::String ^ ToString();public override string ToString ();override this.ToString : unit -> stringPublic Overrides Function ToString () As StringВозвращаемое значение
Строковое представление значения текущего объекта DateTime.
Исключения
Дата и время находятся за пределами диапазона дат, поддерживаемого календарем, принятым для текущего языка и региональных параметров.
Примеры
В следующем примере показано, как строковое представление значения, возвращаемого DateTime методом ToString() , зависит от текущего языка и региональных параметров потока. Он изменяет текущий язык и региональные параметры на en-US, fr-FR и ja-JP и в каждом случае вызывает ToString() метод для возврата строкового представления значения даты и времени с помощью этого языка и региональных параметров.
using System; using System.Globalization; public class ToStringExample1 < public static void Main() < CultureInfo currentCulture = CultureInfo.CurrentCulture; DateTime exampleDate = new DateTime(2021, 5, 1, 18, 32, 6); // Change the current culture to en-US and display the date. CultureInfo.CurrentCulture = CultureInfo.GetCultureInfo("en-US"); Console.WriteLine(exampleDate.ToString()); // Change the current culture to fr-FR and display the date. CultureInfo.CurrentCulture = CultureInfo.GetCultureInfo("fr-FR"); Console.WriteLine(exampleDate.ToString()); // Change the current culture to ja-JP and display the date. CultureInfo.CurrentCulture = CultureInfo.GetCultureInfo("ja-JP"); Console.WriteLine(exampleDate.ToString()); // Restore the original culture CultureInfo.CurrentCulture = currentCulture; >> // The example displays the following output to the console: // 5/1/2021 6:32:06 PM // 01/05/2021 18:32:06 // 2021/05/01 18:32:06open System open System.Globalization let currentCulture = CultureInfo.CurrentCulture let exampleDate = DateTime(2021, 5, 1, 18, 32, 6) // Change the current culture to en-US and display the date. CultureInfo.CurrentCulture " // Change the current culture to fr-FR and display the date. CultureInfo.CurrentCulture " // Change the current culture to ja-JP and display the date. CultureInfo.CurrentCulture " // Restore the original culture CultureInfo.CurrentCultureImports System.Globalization Module DateToStringExample Public Sub Main() Dim currentCulture As CultureInfo = CultureInfo.CurrentCulture Dim exampleDate As Date = #05/01/2021 6:32:06PM# ' Change the current culture to en-US and display the date. CultureInfo.CurrentCulture = CultureInfo.GetCultureInfo("en-US") Console.WriteLine(exampleDate.ToString()) ' Change the current culture to fr-FR and display the date. CultureInfo.CurrentCulture = CultureInfo.GetCultureInfo("fr-FR") Console.WriteLine(exampleDate.ToString()) ' Change the current culture to ja-JP and display the date. CultureInfo.CurrentCulture = CultureInfo.GetCultureInfo("ja-JP") Console.WriteLine(exampleDate.ToString()) ' Restore the original culture CultureInfo.CurrentCulture = currentCulture End Sub End Module ' The example displays the following output to the console: ' 5/1/2021 6:32:06 PM ' 01/05/2021 18:32:06 ' 2021/05/01 18:32:06Комментарии
Значение текущего DateTime объекта форматируется с помощью общего описателя формата даты и времени ('G'). Чтобы отформатировать его с помощью определенного описателя формата даты и времени, вызовите ToString(String) метод . Чтобы отформатировать его с помощью общего описатель формата даты и времени ('G') для определенного языка и региональных параметров, вызовите ToString(IFormatProvider) метод . Чтобы отформатировать его с помощью определенного описатель формата даты и времени и соглашений, относящихся к определенному языку ToString(String, IFormatProvider) и региональным параметрам, вызовите метод .
Этот метод использует сведения о форматировании, производные от текущего языка и региональных параметров. В частности, он объединяет строки настраиваемого формата, возвращаемые свойствами ShortDatePatternDateTimeFormatInfo и LongTimePattern объекта , возвращаемого свойством Thread.CurrentThread.CurrentCulture.DateTimeFormat . Для получения дополнительной информации см. CultureInfo.CurrentCulture. Другие перегрузки ToString метода позволяют указать язык и региональные параметры, форматирование которых следует использовать, и определить выходной DateTime шаблон значения.
Примечания для тех, кто вызывает этот метод
Метод ToString() возвращает строковое представление даты и времени в календаре, используемом текущим языком и региональными параметрами. Если значение текущего DateTime экземпляра является более ранним или более поздним, чем MinSupportedDateTimeMaxSupportedDateTime, метод создает исключение ArgumentOutOfRangeException. Ниже приведен пример. Он пытается отформатировать дату, которая находится за пределами HijriCalendar диапазона класса, если текущим языком и региональными параметрами является арабский (Сирия).
using System; using System.Globalization; using System.Threading; public class Example2 < public static void Main() < DateTime date1 = new DateTime(550, 1, 1); CultureInfo dft; CultureInfo arSY = new CultureInfo("ar-SY"); arSY.DateTimeFormat.Calendar = new HijriCalendar(); // Change current culture to ar-SY. dft = Thread.CurrentThread.CurrentCulture; Thread.CurrentThread.CurrentCulture = arSY; // Display the date using the current culture's calendar. try < Console.WriteLine(date1.ToString()); >catch (ArgumentOutOfRangeException) < Console.WriteLine("is earlier than or later than ", date1.ToString("d", CultureInfo.InvariantCulture), arSY.DateTimeFormat.Calendar.MinSupportedDateTime.ToString("d", CultureInfo.InvariantCulture), arSY.DateTimeFormat.Calendar.MaxSupportedDateTime.ToString("d", CultureInfo.InvariantCulture)); > // Restore the default culture. Thread.CurrentThread.CurrentCulture = dft; > > // The example displays the following output: // 01/01/0550 is earlier than 07/18/0622 or later than 12/31/9999open System open System.Globalization open System.Threading let date1 = DateTime(550, 1, 1) let arSY = CultureInfo "ar-SY" arSY.DateTimeFormat.Calendar " with :? ArgumentOutOfRangeException -> printfn $"""is earlier than or later than """ // Restore the default culture. Thread.CurrentThread.CurrentCulture Imports System.Globalization Imports System.Threading Module Example Public Sub Main() Dim date1 As Date = #1/1/550# Dim dft As CultureInfo Dim arSY As New CultureInfo("ar-SY") arSY.DateTimeFormat.Calendar = New HijriCalendar() ' Change current culture to ar-SY. dft = Thread.CurrentThread.CurrentCulture Thread.CurrentThread.CurrentCulture = arSY ' Display the date using the current culture's calendar. Try Console.WriteLine(date1.ToString()) Catch e As ArgumentOutOfRangeException Console.WriteLine(" is earlier than or later than ", _ date1.ToString("d", CultureInfo.InvariantCulture), _ arSY.DateTimeFormat.Calendar.MinSupportedDateTime.ToString("d", CultureInfo.InvariantCulture), _ arSY.DateTimeFormat.Calendar.MaxSupportedDateTime.ToString("d", CultureInfo.InvariantCulture)) End Try ' Restore the default culture. Thread.CurrentThread.CurrentCulture = dft End Sub End Module ' The example displays the following output: ' 01/01/0550 is earlier than 07/18/0622 or later than 12/31/9999См. также раздел
- DateTimeFormatInfo
- CultureInfo
Применяется к
ToString(String, IFormatProvider)
Преобразует значение текущего объекта DateTime в эквивалентное ему строковое представление с использованием указанного формата и сведений об особенностях формата для данного языка и региональных параметров.
public: virtual System::String ^ ToString(System::String ^ format, IFormatProvider ^ provider);public string ToString (string format, IFormatProvider provider);public string ToString (string? format, IFormatProvider? provider);override this.ToString : string * IFormatProvider -> stringPublic Function ToString (format As String, provider As IFormatProvider) As StringПараметры
Строка стандартного или пользовательского формата даты и времени.
Объект, предоставляющий сведения о форматировании для определенного языка и региональных параметров.
Возвращаемое значение
Строковое представление значения текущего объекта DateTime, заданное параметрами format и provider .
Реализации
Исключения
Длина format равна 1, и он не является одним из символов описателя формата, определенного для DateTimeFormatInfo.
format не содержит допустимого шаблона пользовательского формата.
Дата и время находятся за пределами диапазона дат, поддерживаемого календарем, используемым в provider .
Примеры
В следующем примере каждая из строк стандартного формата даты и времени используется для отображения строкового представления даты и времени для четырех разных языков и региональных параметров.
using System; using System.Globalization; public class ToStringExample4 < public static void Main1() < // Create an array of all supported standard date and time format specifiers. string[] formats = ; // Create an array of four cultures. CultureInfo[] cultures = ; // Define date to be displayed. DateTime dateToDisplay = new DateTime(2008, 10, 31, 17, 4, 32); // Iterate each standard format specifier. foreach (string formatSpecifier in formats) < foreach (CultureInfo culture in cultures) Console.WriteLine("Format Specifier Culture ", formatSpecifier, culture.Name, dateToDisplay.ToString(formatSpecifier, culture)); Console.WriteLine(); > > > // The example displays the following output: // d Format Specifier de-DE Culture 31.10.2008 // d Format Specifier en-US Culture 10/31/2008 // d Format Specifier es-ES Culture 31/10/2008 // d Format Specifier fr-FR Culture 31/10/2008 // // D Format Specifier de-DE Culture Freitag, 31. Oktober 2008 // D Format Specifier en-US Culture Friday, October 31, 2008 // D Format Specifier es-ES Culture viernes, 31 de octubre de 2008 // D Format Specifier fr-FR Culture vendredi 31 octobre 2008 // // f Format Specifier de-DE Culture Freitag, 31. Oktober 2008 17:04 // f Format Specifier en-US Culture Friday, October 31, 2008 5:04 PM // f Format Specifier es-ES Culture viernes, 31 de octubre de 2008 17:04 // f Format Specifier fr-FR Culture vendredi 31 octobre 2008 17:04 // // F Format Specifier de-DE Culture Freitag, 31. Oktober 2008 17:04:32 // F Format Specifier en-US Culture Friday, October 31, 2008 5:04:32 PM // F Format Specifier es-ES Culture viernes, 31 de octubre de 2008 17:04:32 // F Format Specifier fr-FR Culture vendredi 31 octobre 2008 17:04:32 // // g Format Specifier de-DE Culture 31.10.2008 17:04 // g Format Specifier en-US Culture 10/31/2008 5:04 PM // g Format Specifier es-ES Culture 31/10/2008 17:04 // g Format Specifier fr-FR Culture 31/10/2008 17:04 // // G Format Specifier de-DE Culture 31.10.2008 17:04:32 // G Format Specifier en-US Culture 10/31/2008 5:04:32 PM // G Format Specifier es-ES Culture 31/10/2008 17:04:32 // G Format Specifier fr-FR Culture 31/10/2008 17:04:32 // // m Format Specifier de-DE Culture 31. Oktober // m Format Specifier en-US Culture October 31 // m Format Specifier es-ES Culture 31 de octubre // m Format Specifier fr-FR Culture 31 octobre // // o Format Specifier de-DE Culture 2008-10-31T17:04:32.0000000 // o Format Specifier en-US Culture 2008-10-31T17:04:32.0000000 // o Format Specifier es-ES Culture 2008-10-31T17:04:32.0000000 // o Format Specifier fr-FR Culture 2008-10-31T17:04:32.0000000 // // r Format Specifier de-DE Culture Fri, 31 Oct 2008 17:04:32 GMT // r Format Specifier en-US Culture Fri, 31 Oct 2008 17:04:32 GMT // r Format Specifier es-ES Culture Fri, 31 Oct 2008 17:04:32 GMT // r Format Specifier fr-FR Culture Fri, 31 Oct 2008 17:04:32 GMT // // s Format Specifier de-DE Culture 2008-10-31T17:04:32 // s Format Specifier en-US Culture 2008-10-31T17:04:32 // s Format Specifier es-ES Culture 2008-10-31T17:04:32 // s Format Specifier fr-FR Culture 2008-10-31T17:04:32 // // t Format Specifier de-DE Culture 17:04 // t Format Specifier en-US Culture 5:04 PM // t Format Specifier es-ES Culture 17:04 // t Format Specifier fr-FR Culture 17:04 // // T Format Specifier de-DE Culture 17:04:32 // T Format Specifier en-US Culture 5:04:32 PM // T Format Specifier es-ES Culture 17:04:32 // T Format Specifier fr-FR Culture 17:04:32 // // u Format Specifier de-DE Culture 2008-10-31 17:04:32Z // u Format Specifier en-US Culture 2008-10-31 17:04:32Z // u Format Specifier es-ES Culture 2008-10-31 17:04:32Z // u Format Specifier fr-FR Culture 2008-10-31 17:04:32Z // // U Format Specifier de-DE Culture Freitag, 31. Oktober 2008 09:04:32 // U Format Specifier en-US Culture Friday, October 31, 2008 9:04:32 AM // U Format Specifier es-ES Culture viernes, 31 de octubre de 2008 9:04:32 // U Format Specifier fr-FR Culture vendredi 31 octobre 2008 09:04:32 // // Y Format Specifier de-DE Culture Oktober 2008 // Y Format Specifier en-US Culture October 2008 // Y Format Specifier es-ES Culture octubre de 2008 // Y Format Specifier fr-FR Culture octobre 2008open System open System.Globalization // Create a list of all supported standard date and time format specifiers. let formats = [ "d"; "D"; "f"; "F"; "g"; "G"; "m"; "o" "r"; "s"; "t"; "T"; "u"; "U"; "Y" ] // Create a list of four cultures. let cultures = [ CultureInfo.GetCultureInfo "de-DE" CultureInfo.GetCultureInfo "en-US" CultureInfo.GetCultureInfo "es-ES" CultureInfo.GetCultureInfo "fr-FR" ] // Define date to be displayed. let dateToDisplay = DateTime(2008, 10, 31, 17, 4, 32) // Iterate each standard format specifier. for formatSpecifier in formats do for culture in cultures do printfn $" Format Specifier Culture" printfn "" // The example displays the following output: // d Format Specifier de-DE Culture 31.10.2008 // d Format Specifier en-US Culture 10/31/2008 // d Format Specifier es-ES Culture 31/10/2008 // d Format Specifier fr-FR Culture 31/10/2008 // // D Format Specifier de-DE Culture Freitag, 31. Oktober 2008 // D Format Specifier en-US Culture Friday, October 31, 2008 // D Format Specifier es-ES Culture viernes, 31 de octubre de 2008 // D Format Specifier fr-FR Culture vendredi 31 octobre 2008 // // f Format Specifier de-DE Culture Freitag, 31. Oktober 2008 17:04 // f Format Specifier en-US Culture Friday, October 31, 2008 5:04 PM // f Format Specifier es-ES Culture viernes, 31 de octubre de 2008 17:04 // f Format Specifier fr-FR Culture vendredi 31 octobre 2008 17:04 // // F Format Specifier de-DE Culture Freitag, 31. Oktober 2008 17:04:32 // F Format Specifier en-US Culture Friday, October 31, 2008 5:04:32 PM // F Format Specifier es-ES Culture viernes, 31 de octubre de 2008 17:04:32 // F Format Specifier fr-FR Culture vendredi 31 octobre 2008 17:04:32 // // g Format Specifier de-DE Culture 31.10.2008 17:04 // g Format Specifier en-US Culture 10/31/2008 5:04 PM // g Format Specifier es-ES Culture 31/10/2008 17:04 // g Format Specifier fr-FR Culture 31/10/2008 17:04 // // G Format Specifier de-DE Culture 31.10.2008 17:04:32 // G Format Specifier en-US Culture 10/31/2008 5:04:32 PM // G Format Specifier es-ES Culture 31/10/2008 17:04:32 // G Format Specifier fr-FR Culture 31/10/2008 17:04:32 // // m Format Specifier de-DE Culture 31. Oktober // m Format Specifier en-US Culture October 31 // m Format Specifier es-ES Culture 31 de octubre // m Format Specifier fr-FR Culture 31 octobre // // o Format Specifier de-DE Culture 2008-10-31T17:04:32.0000000 // o Format Specifier en-US Culture 2008-10-31T17:04:32.0000000 // o Format Specifier es-ES Culture 2008-10-31T17:04:32.0000000 // o Format Specifier fr-FR Culture 2008-10-31T17:04:32.0000000 // // r Format Specifier de-DE Culture Fri, 31 Oct 2008 17:04:32 GMT // r Format Specifier en-US Culture Fri, 31 Oct 2008 17:04:32 GMT // r Format Specifier es-ES Culture Fri, 31 Oct 2008 17:04:32 GMT // r Format Specifier fr-FR Culture Fri, 31 Oct 2008 17:04:32 GMT // // s Format Specifier de-DE Culture 2008-10-31T17:04:32 // s Format Specifier en-US Culture 2008-10-31T17:04:32 // s Format Specifier es-ES Culture 2008-10-31T17:04:32 // s Format Specifier fr-FR Culture 2008-10-31T17:04:32 // // t Format Specifier de-DE Culture 17:04 // t Format Specifier en-US Culture 5:04 PM // t Format Specifier es-ES Culture 17:04 // t Format Specifier fr-FR Culture 17:04 // // T Format Specifier de-DE Culture 17:04:32 // T Format Specifier en-US Culture 5:04:32 PM // T Format Specifier es-ES Culture 17:04:32 // T Format Specifier fr-FR Culture 17:04:32 // // u Format Specifier de-DE Culture 2008-10-31 17:04:32Z // u Format Specifier en-US Culture 2008-10-31 17:04:32Z // u Format Specifier es-ES Culture 2008-10-31 17:04:32Z // u Format Specifier fr-FR Culture 2008-10-31 17:04:32Z // // U Format Specifier de-DE Culture Freitag, 31. Oktober 2008 09:04:32 // U Format Specifier en-US Culture Friday, October 31, 2008 9:04:32 AM // U Format Specifier es-ES Culture viernes, 31 de octubre de 2008 9:04:32 // U Format Specifier fr-FR Culture vendredi 31 octobre 2008 09:04:32 // // Y Format Specifier de-DE Culture Oktober 2008 // Y Format Specifier en-US Culture October 2008 // Y Format Specifier es-ES Culture octubre de 2008 // Y Format Specifier fr-FR Culture octobre 2008 Imports System.Globalization Module Example Public Sub Main4() ' Create an array of all supported standard date and time format specifiers. Dim formats() As String = ' Create an array of four cultures. Dim cultures() As CultureInfo = ' Define date to be displayed. Dim dateToDisplay As Date = #10/1/2008 17:04:32# ' Iterate each standard format specifier. For Each formatSpecifier As String In formats For Each culture As CultureInfo In cultures Console.WriteLine(" Format Specifier Culture ", formatSpecifier, culture.Name, dateToDisplay.ToString(formatSpecifier, culture)) Next Console.WriteLine() Next End Sub End Module ' The example displays the following output: ' d Format Specifier de-DE Culture 01.10.2008 ' d Format Specifier en-US Culture 10/1/2008 ' d Format Specifier es-ES Culture 01/10/2008 ' d Format Specifier fr-FR Culture 01/10/2008 ' ' D Format Specifier de-DE Culture Mittwoch, 1. Oktober 2008 ' D Format Specifier en-US Culture Wednesday, October 01, 2008 ' D Format Specifier es-ES Culture miércoles, 01 de octubre de 2008 ' D Format Specifier fr-FR Culture mercredi 1 octobre 2008 ' ' f Format Specifier de-DE Culture Mittwoch, 1. Oktober 2008 17:04 ' f Format Specifier en-US Culture Wednesday, October 01, 2008 5:04 PM ' f Format Specifier es-ES Culture miércoles, 01 de octubre de 2008 17:04 ' f Format Specifier fr-FR Culture mercredi 1 octobre 2008 17:04 ' ' F Format Specifier de-DE Culture Mittwoch, 1. Oktober 2008 17:04:32 ' F Format Specifier en-US Culture Wednesday, October 01, 2008 5:04:32 PM ' F Format Specifier es-ES Culture miércoles, 01 de octubre de 2008 17:04:3 ' F Format Specifier fr-FR Culture mercredi 1 octobre 2008 17:04:32 ' ' g Format Specifier de-DE Culture 01.10.2008 17:04 ' g Format Specifier en-US Culture 10/1/2008 5:04 PM ' g Format Specifier es-ES Culture 01/10/2008 17:04 ' g Format Specifier fr-FR Culture 01/10/2008 17:04 ' ' G Format Specifier de-DE Culture 01.10.2008 17:04:32 ' G Format Specifier en-US Culture 10/1/2008 5:04:32 PM ' G Format Specifier es-ES Culture 01/10/2008 17:04:32 ' G Format Specifier fr-FR Culture 01/10/2008 17:04:32 ' ' m Format Specifier de-DE Culture 01 Oktober ' m Format Specifier en-US Culture October 01 ' m Format Specifier es-ES Culture 01 octubre ' m Format Specifier fr-FR Culture 1 octobre ' ' o Format Specifier de-DE Culture 2008-10-01T17:04:32.0000000 ' o Format Specifier en-US Culture 2008-10-01T17:04:32.0000000 ' o Format Specifier es-ES Culture 2008-10-01T17:04:32.0000000 ' o Format Specifier fr-FR Culture 2008-10-01T17:04:32.0000000 ' ' r Format Specifier de-DE Culture Wed, 01 Oct 2008 17:04:32 GMT ' r Format Specifier en-US Culture Wed, 01 Oct 2008 17:04:32 GMT ' r Format Specifier es-ES Culture Wed, 01 Oct 2008 17:04:32 GMT ' r Format Specifier fr-FR Culture Wed, 01 Oct 2008 17:04:32 GMT ' ' s Format Specifier de-DE Culture 2008-10-01T17:04:32 ' s Format Specifier en-US Culture 2008-10-01T17:04:32 ' s Format Specifier es-ES Culture 2008-10-01T17:04:32 ' s Format Specifier fr-FR Culture 2008-10-01T17:04:32 ' ' t Format Specifier de-DE Culture 17:04 ' t Format Specifier en-US Culture 5:04 PM ' t Format Specifier es-ES Culture 17:04 ' t Format Specifier fr-FR Culture 17:04 ' ' T Format Specifier de-DE Culture 17:04:32 ' T Format Specifier en-US Culture 5:04:32 PM ' T Format Specifier es-ES Culture 17:04:32 ' T Format Specifier fr-FR Culture 17:04:32 ' ' u Format Specifier de-DE Culture 2008-10-01 17:04:32Z ' u Format Specifier en-US Culture 2008-10-01 17:04:32Z ' u Format Specifier es-ES Culture 2008-10-01 17:04:32Z ' u Format Specifier fr-FR Culture 2008-10-01 17:04:32Z ' ' U Format Specifier de-DE Culture Donnerstag, 2. Oktober 2008 00:04:32 ' U Format Specifier en-US Culture Thursday, October 02, 2008 12:04:32 AM ' U Format Specifier es-ES Culture jueves, 02 de octubre de 2008 0:04:32 ' U Format Specifier fr-FR Culture jeudi 2 octobre 2008 00:04:32 ' ' Y Format Specifier de-DE Culture Oktober 2008 ' Y Format Specifier en-US Culture October, 2008 ' Y Format Specifier es-ES Culture octubre de 2008 ' Y Format Specifier fr-FR Culture octobre 2008В следующем примере показаны различные способы форматирования DateTime значения с помощью инвариантного DateTimeFormatInfo.
using namespace System; using namespace System::Globalization; void main() < DateTime dt = DateTime::Now; array^format = ; String^ date; for ( int i = 0; i < format->Length; i++ ) < date = dt.ToString( format[ i ], DateTimeFormatInfo::InvariantInfo ); Console::WriteLine( String::Concat( format[ i ], L" :", date ) ); >/** Output. * * d :08/17/2000 * D :Thursday, August 17, 2000 * f :Thursday, August 17, 2000 16:32 * F :Thursday, August 17, 2000 16:32:32 * g :08/17/2000 16:32 * G :08/17/2000 16:32:32 * m :August 17 * r :Thu, 17 Aug 2000 23:32:32 GMT * s :2000-08-17T16:32:32 * t :16:32 * T :16:32:32 * u :2000-08-17 23:32:32Z * U :Thursday, August 17, 2000 23:32:32 * y :August, 2000 * dddd, MMMM dd yyyy :Thursday, August 17 2000 * ddd, MMM d "'"yy :Thu, Aug 17 '00 * dddd, MMMM dd :Thursday, August 17 * M/yy :8/00 * dd-MM-yy :17-08-00 */ >open System open System.Globalization let dt = DateTime.Now let formats = [ "d"; "D" "f"; "F" "g"; "G" "m" "r" "s" "t"; "T" "u"; "U" "y" "dddd, MMMM dd yyyy" "ddd, MMM d \"'\"yy" "dddd, MMMM dd" "M/yy" "dd-MM-yy" ] for format in formats do let date = dt.ToString(format, DateTimeFormatInfo.InvariantInfo) printfn $": " // Output. // d: 08/17/2000 // D: Thursday, August 17, 2000 // f: Thursday, August 17, 2000 16:32 // F: Thursday, August 17, 2000 16:32:32 // g: 08/17/2000 16:32 // G: 08/17/2000 16:32:32 // m: August 17 // r: Thu, 17 Aug 2000 23:32:32 GMT // s: 2000-08-17T16:32:32 // t: 16:32 // T: 16:32:32 // u: 2000-08-17 23:32:32Z // U: Thursday, August 17, 2000 23:32:32 // y: August, 2000 // dddd, MMMM dd yyyy: Thursday, August 17 2000 // ddd, MMM d "'"yy: Thu, Aug 17 '00 // dddd, MMMM dd: Thursday, August 17 // M/yy: 8/00 // dd-MM-yy: 17-08-00using System; using System.Globalization; public class MainClass < public static void Main(string[] args) < DateTime dt = DateTime.Now; String[] format = < "d", "D", "f", "F", "g", "G", "m", "r", "s", "t", "T", "u", "U", "y", "dddd, MMMM dd yyyy", "ddd, MMM d \"'\"yy", "dddd, MMMM dd", "M/yy", "dd-MM-yy", >; string date; for (int i = 0; i < format.Length; i++) < date = dt.ToString(format[i], DateTimeFormatInfo.InvariantInfo); Console.WriteLine(string.Concat(format[i], " :", date)); >/** Output. * * d :08/17/2000 * D :Thursday, August 17, 2000 * f :Thursday, August 17, 2000 16:32 * F :Thursday, August 17, 2000 16:32:32 * g :08/17/2000 16:32 * G :08/17/2000 16:32:32 * m :August 17 * r :Thu, 17 Aug 2000 23:32:32 GMT * s :2000-08-17T16:32:32 * t :16:32 * T :16:32:32 * u :2000-08-17 23:32:32Z * U :Thursday, August 17, 2000 23:32:32 * y :August, 2000 * dddd, MMMM dd yyyy :Thursday, August 17 2000 * ddd, MMM d "'"yy :Thu, Aug 17 '00 * dddd, MMMM dd :Thursday, August 17 * M/yy :8/00 * dd-MM-yy :17-08-00 */ > >Option Explicit Option Strict Imports System.Globalization Public Class MainClass Public Shared Sub Main() Dim dt As DateTime = DateTime.Now Dim myformat() As String = Dim mydate As String Dim i As Integer For i = 0 To myformat.Length - 1 mydate = dt.ToString(myformat(i), DateTimeFormatInfo.InvariantInfo) Console.WriteLine(String.Concat(myformat(i), " :", mydate)) Next i ' Output. ' ' d :08/17/2000 ' D :Thursday, August 17, 2000 ' f :Thursday, August 17, 2000 16:32 ' F :Thursday, August 17, 2000 16:32:32 ' g :08/17/2000 16:32 ' G :08/17/2000 16:32:32 ' m :August 17 ' r :Thu, 17 Aug 2000 23:32:32 GMT ' s :2000-08-17T16:32:32 ' t :16:32 ' T :16:32:32 ' u :2000-08-17 23:32:32Z ' U :Thursday, August 17, 2000 23:32:32 ' y :August, 2000 ' dddd, MMMM dd yyyy :Thursday, August 17 2000 ' ddd, MMM d "'"yy :Thu, Aug 17 '00 ' dddd, MMMM dd :Thursday, August 17 ' M/yy :8/00 ' dd-MM-yy :17-08-00 End Sub End ClassКомментарии
Параметр format может содержать один символ описателя формата (см. раздел Стандартные строки формата даты и времени) или пользовательский шаблон формата (см. раздел Настраиваемые строки формата даты и времени). Если format имеет значение null или является пустой строкой (""), используется описатель стандартного формата "G".
Параметр provider определяет шаблон, соответствующий описателям стандартного формата, а также символы и имена компонентов даты и времени. Параметр provider может иметь любой из следующих значений:
- Объект CultureInfo , представляющий язык и региональные параметры, соглашения о форматировании которых должны отражаться в возвращаемой строке. Объект DateTimeFormatInfo , возвращаемый свойством CultureInfo.DateTimeFormat , определяет форматирование возвращаемой строки.
- Объект DateTimeFormatInfo , определяющий формат данных даты и времени.
- Пользовательский объект, реализующий IFormatProvider интерфейс . Его GetFormat метод возвращает DateTimeFormatInfo объект , предоставляющий сведения о форматировании.
Если provider имеет значение null , используется объект , DateTimeFormatInfo связанный с текущим языком и региональными параметрами. Для получения дополнительной информации см. CultureInfo.CurrentCulture.
Примечания для тех, кто вызывает этот метод
Метод ToString(String, IFormatProvider) возвращает строковое представление даты и времени в календаре, используемом параметром provider . Его календарь определяется свойством Calendar . Если значение текущего DateTime экземпляра является более ранним или более поздним, чем MinSupportedDateTimeMaxSupportedDateTime, метод создает исключение ArgumentOutOfRangeException. Ниже приведен пример. Он пытается отформатировать дату, которая находится за пределами UmAlQuraCalendar диапазона класса .
using System; using System.Globalization; public class Example4 < public static void Main() < CultureInfo arSA = new CultureInfo("ar-SA"); arSA.DateTimeFormat.Calendar = new UmAlQuraCalendar(); DateTime date1 = new DateTime(1890, 9, 10); try < Console.WriteLine(date1.ToString("d", arSA)); >catch (ArgumentOutOfRangeException) < Console.WriteLine("is earlier than or later than ", date1, arSA.DateTimeFormat.Calendar.MinSupportedDateTime, arSA.DateTimeFormat.Calendar.MaxSupportedDateTime); > > > // The example displays the following output: // 9/10/1890 is earlier than 4/30/1900 or later than 5/13/2029open System open System.Globalization let arSA = CultureInfo "ar-SA" arSA.DateTimeFormat.Calendar printfn "%s" with :? ArgumentOutOfRangeException -> printfn $" is earlier than or later than " // The example displays the following output: // 9/10/1890 is earlier than 4/30/1900 or later than 5/13/2029Imports System.Globalization Module Example Public Sub Main() Dim arSA As New CultureInfo("ar-SA") arSA.DateTimeFormat.Calendar = New UmAlQuraCalendar() Dim date1 As Date = #09/10/1890# Try Console.WriteLine(date1.ToString("d", arSA)) Catch e As ArgumentOutOfRangeException Console.WriteLine(" is earlier than or later than ", _ date1, _ arSA.DateTimeFormat.Calendar.MinSupportedDateTime, _ arSA.DateTimeFormat.Calendar.MaxSupportedDateTime) End Try End Sub End Module ' The example displays the following output: ' 9/10/1890 is earlier than 4/30/1900 or later than 5/13/2029См. также раздел
- DateTimeFormatInfo
- CultureInfo
- Типы форматирования в .NET
- Строки стандартных форматов даты и времени
- Строки настраиваемых форматов даты и времени
- Пример: служебная программа форматирования .NET Core WinForms (C#)
- Пример: служебная программа форматирования .NET Core WinForms (Visual Basic)