Ошибка в формате даты (Exception has occurred: CLR/System.FormatException). DateTime, C#

Есть ли каноническое решения для парсинга даты, которая выходит за границы 24 часов?
Например для таких,

'2022.05.22 24:00'
'2022.05.22 24:10'

Ошибка, которую я ловлю

Exception has occurred: CLR/System.FormatException
An unhandled exception of type 'System.FormatException' occurred in System.Private.CoreLib.dll: 'The DateTime represented by the string '2022.05.22 24:00' is not supported in calendar 'System.Globalization.GregorianCalendar'.'

Строка кода, которая мне это выдает

...
// values[0]="2022.05.22" и values[1]="24:00"
dateteime = DateTime.Parse((values[0] + ' ' +values[1]), CultureInfo.InvariantCulture),

Понимаю, что могу сделать Replace вот так

...
// values[0]="2022.05.22" и values[1]="24:00"
dateteime = DateTime.Parse((values[0] + ' ' +values[1].Replace("24:", "00:")), CultureInfo.InvariantCulture),

enSO завален подобного рода вопросами, но они либо датируются 10 летней давностью, либо не представляют ценности, так как решают только часть проблемы с датой. А, может, ищу криво.


Ответы (1 шт):

Автор решения: Alexander Petrov
using System.Globalization;
var values = new string[] { "2022.05.22", "24:10" };

var date = DateTime.Parse(values[0]);

var timeParts = values[1].Split(':');
int hours = int.Parse(timeParts[0]);
int minutes = int.Parse(timeParts[1]);

var dateTime = date.AddHours(hours).AddMinutes(minutes);

Console.WriteLine(dateTime);

Как-то так.

→ Ссылка