using System.Globalization;
public static void Main()
var stringDate = "09.09.2024 07:39:52";
var date = DateTime.ParseExact(stringDate, DateFormatter(stringDate), CultureInfo.InvariantCulture);
Console.WriteLine(date.ToString("dd.MM.yyyy HH:mm:ss.FFF"));
private static string DateFormatter(string date)
string defaultFormat = "dd.MM.yyyy HH:mm:ss.FFF";
if (date == null || !date.Contains('.'))
int milisecondLength = date.Split('.').LastOrDefault()?.Length ?? 0;
Console.WriteLine(milisecondLength);
return milisecondLength == 0 ? defaultFormat : string.Concat("dd.MM.yyyy HH:mm:ss.", new string('F', milisecondLength));