Вы также можете использовать метод DateTime.TryParse для преобразования вашей даты. Он использует текущие настройки культуры для определения сводного года (в моем случае это 2029)
DateTime resultDate;
Console.WriteLine("CultureInfo.CurrentCulture.Calendar.TwoDigitYearMax : {0}", System.Globalization.CultureInfo.CurrentCulture.Calendar.TwoDigitYearMax);
DateTime.TryParse("01/01/28", out resultDate);
Console.WriteLine("Generated date with year=28 - {0}",resultDate);
DateTime.TryParse("01/02/29",out resultDate);
Console.WriteLine("Generated date with year=29 - {0}", resultDate);
DateTime.TryParse("01/03/30", out resultDate);
Console.WriteLine("Generated date with year=30 - {0}", resultDate);
Вывод:
CultureInfo.CurrentCulture.Calendar.TwoDigitYearMax: 2029
Дата создания с годом = 28 - 01/01/2028 00: 00: 00
Дата создания с годом = 29 - 01/02/2029 00: 00: 00
Дата создания с годом = 30 - 01/03/1930 00: 00: 00
Если вы хотите изменить поведение, которое вы можете создать культуру с годом вы хотите использовать в качестве опоры. В этой теме показан пример
Элемент управления DateTime.TryParse века C #
Но, как сказал Мартин, если вы хотите управлять периодом времени, который охватывает более 100 лет, нет способа сделать это только с двумя цифрами.