Преобразование строки в DateTime в C#
В этом посте будет обсуждаться, как преобразовать указанное строковое представление формата даты и времени в его эквивалент DateTime в C#.
1. Использование DateTime.Parse() метод
Чтобы преобразовать строковое представление даты и времени в DateTime объект, используйте DateTime.Parse() метод. Возвращаемое значение этого метода указывает, успешно ли выполнено преобразование. В следующем примере проверяется строка даты и времени путем преобразования ее в DateTime объект с помощью Parse() метод.
Converting DateOnly and TimeOnly to DateTime and vice versa in .NET 6
Since I have introduced DateOnly and TimeOnly feature of .NET 6 in my previous article( Simplified Date and Time with DateOnly and TimeOnly types in .NET 6), I have got some query related to compatibility with DateTime like,
How DateOnly and TimeOnly can be used with legacy application where DateTime is already used?
How can we migrate to use this ?
How do we interact with external interface which are still using DateTime ?
Don’t worry .NET developers already thought of it and they have provided the proper methods to do the conversion.
Let’s look at the example.
Subscribe for Nitesh Singhal’s Articles
Subscribe for Nitesh Singhal’s Articles Subscribe to Nitesh Singhal’s Articles to get tutorials, tips, and best…
Converting DateTime to DateOnly
// Creating DateTime object
DateTime testDateTime = new DateTime(2021,09,21);// Creating DateOnly object from DateTime.
DateOnly testDateOnly = DateOnly.FromDateTime(testDateTime);Console.WriteLine(testDateOnly.ToString());//Output -> 09/21/2021
Converting DateTime to TimeOnly
// Creating DateTime object
DateTime testDateTime = new DateTime(2021,09,21,03,13,22);// Creating TimeOnly object from DateTime.
TimeOnly testTimeOnly = TimeOnly.FromDateTime(testDateTime);Console.WriteLine(testTimeOnly.ToLongTimeString());//Output -> 03:13:22
Converting DateOnly to DateTime
// Creating DateOnly instance
DateOnly dateOnly = new DateOnly(2021, 9, 16);// Converting DateOnly to DateTime by providing Time Info
DateTime testDateTime = dateOnly.ToDateTime(TimeOnly.Parse("10:00 PM"));Console.WriteLine(testDateTime);//Output -> 09/16/2021 22:00:00
As you can see, to convert from DateOnly to DateTime, we need to provide TimeOnly info along with it.
we can provide actual time or we can provide TimeOnly.MinValue to specify the midnight where time is not “relevant”.
Converting TimeOnly to DateTime
This is little tricky, if you think there are no scenario where you would be converting TimeOnly to DateTime, even if you have to then it would be same as we already did above in Converting DateOnly to DateTime section.
But it support to convert the TimeOnly to TimeSpan.
Let’s look at the example.
Converting TimeOnly to TimeSpan
//Creating TimeOnly instance
TimeOnly timeOnly = TimeOnly.Parse("10:00 PM");// Converting TimeOnly to TimeSpan
TimeSpan timeSpan = timeOnly.ToTimeSpan();Console.WriteLine(timeSpan);//Output -> 22:00:00
Summary
Converting DateTime to DateOnly and TimeOnly is very easy and simple and already well supported in library itself.
Hope it is useful.
Thanks for reading.
If you liked this article please share the energy and press the clap button And follow me for more interesting articles like this one.
Не удалось неявно преобразовать string в DateTime?
Кароче, есть текст бокс и база данных, в которую должно записываться значение из текст бокса, но у меня тут проблемы преобразования даты в строку. Скрин
- Вопрос задан более двух лет назад
- 279 просмотров
1 комментарий
Средний 1 комментарий
Как преобразовать datetime в string c
При обработке данных из стороннего источника необходимо было изменить формат даты под используемый нами формат. Дата была формата «28 февраля 2014 г.», т.е. это была строка с русским названием месяца. И еще «г.» в конце.
Для преобразование такой строки в дату не подойдет автоматический метод преобразования строки в дату Convert.ToDateTime. В данном случае потребуется использование метода DateTime.ParseExact и класс CultureInfo, который предназначен для работы с региональной культурой – с названиями дней и месяцев календарей, форматами дат, сортировкой по алфавиту и т.д.
Значения региональных параметров для CulterInfoможно посмотреть на странице http://msdn.microsoft.com/en-us/goglobal/bb896001.aspx, а формат даты – в MSDNовском описании Custom Date and Time Format Strings.
Для преобразования строки «28 февраля 2014 г.» в формат DateTime и дальнейшей работой, я написал небольшой фрагмент кода. Код получился немного академическим, но аккуратность – не лишнее качество программиста. Для наглядности и простоты привожу код консольного приложения.
using System; using System.Globalization; using System.Text; namespace ConvertRusStringDateToDateTime < class Program < static void Main(string[] args) < string rusdate, format, spresult; DateTime result; rusdate = "28 февраля 2014 г."; format = "dd MMMM yyyy г."; CultureInfo provider = CultureInfo.CreateSpecificCulture("ru-RU"); try < result = DateTime.ParseExact(rusdate, format, provider); spresult = result.ToString("dd-MM-yyyy"); Console.WriteLine(spresult); >catch (Exception ex) < Console.WriteLine(ex.Message); >Console.WriteLine("Press any key to continue"); Console.ReadKey(true); > > >