Get Date from String
c#, datetime, string
Solution
This will extract, parse and print all dates in the input text:
var regex = new Regex(@"\b\d{2}\.\d{2}.\d{4}\b");
foreach(Match m in regex.Matches(inputText))
{
DateTime dt;
if (DateTime.TryParseExact(m.Value, "dd.MM.yyyy", null, DateTimeStyles.None, out dt))
Console.WriteLine(dt.ToString());
}
Now, if you just want the first date, you can do that:
static DateTime? GetFirstDateFromString(string inputText)
{
var regex = new Regex(@"\b\d{2}\.\d{2}.\d{4}\b");
foreach(Match m in regex.Matches(inputText))
{
DateTime dt;
if (DateTime.TryParseExact(m.Value, "dd.MM.yyyy", null, DateTimeStyles.None, out dt))
return dt;
}
return null;
}
Note that the method returns a nullable `DateTime`, so that it can return null when the string contains no date.
Problem
Lets say I have one of following strings: ``` "Hello, I'm a String... This is a Stackoverflowquestion!! Here is a Date: 16.03.2013, 02:35 and yeah, plain text blah blah..-." "This the other string! :) 22.11.2012. Its a Date you see" "Here we have 2 Dates, 23.12.2012 and 14.07.2011" ``` What would be the best and fastest way to get these dates from the string (in `DateTime`)? (Only First occured Date in String) Desirable Returns: ``` String 1: 16.03.2013 (as a DateTime) String 2: 22.11.2012 (" ") String 3: 23.12.2012 (" ") ``` So I would call a method something like: ``` DateTime date1 = GetFirstDateFromString(string1); ```