I have a large set (100+ million) of observations with the date represented as a custom string format. We did not generate the date strings, I just need to convert the date
You can use DateTime.ParseExact, and pass the format into this method using the custom date and time format strings. This will allow you to parse the date in one pass.
Take a look at DateTime.ParseExact, e.g.
var dateTime = DateTime.ParseExact(
"12 JUN 2010",
"dd MMM yyyy",
CultureInfo.InvariantCulture);
You can also specify a fourth parameter to set the Kind of date/time, for example if they are UTC date/times then you'd likely want to specify DateTimeStyles.AssumeUniversal
.
That DateTime string is valid for DateTime.Parse()
(or .TryParse()
)
As for a truly custom string that .Parse() can't handle, you are probably correct, you'd need to pull your string apart and reassemble it in a useful manner.