59

I have a string of the next format "ORDER20100322194007", where 20100322 is a date and 194007 is a time. How to parse a string and get the contained DateTime object?

1
  • 1
    Thats a good question. Maybe you should change the title to something like "DateTime parsing of custom date format in .NET" Commented Apr 1, 2010 at 13:32

3 Answers 3

109

Will it always start with ORDER?

string pattern = "'ORDER'yyyyMMddHHmmss";
DateTime dt;
if (DateTime.TryParseExact(text, pattern, CultureInfo.InvariantCulture, 
                           DateTimeStyles.None,
                           out dt))
{
    // dt is the parsed value
} 
else 
{
    // Invalid string
}

If the string being invalid should throw an exception, then use DateTime.ParseExact instead of DateTime.TryParseExact

If it doesn't always begin with "ORDER" then do whatever you need to in order to get just the date and time part, and remove "'ORDER'" from the format pattern above.

Sign up to request clarification or add additional context in comments.

Comments

12

You can use DateTime.ParseExact method to specify the format that should be used while parsing.

Comments

1

If you don't have a fixed structure of your string say order will not always be there then you can use regex to separate the numbers and characters and then use convert to datetime function for the numbers separated.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.