DateTime: Require the user to enter a time component
        Posted  
        
            by Heinzi
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by Heinzi
        
        
        
        Published on 2010-04-21T09:33:57Z
        Indexed on 
            2010/04/21
            9:53 UTC
        
        
        Read the original article
        Hit count: 516
        
Checking if a user input is a valid date or a valid "date + time" is easy: .NET provides DateTime.TryParse (and, in addition, VB.NET provides IsDate).
Now, I want to check if the user entered a date including a time component. So, when using a German locale, 31.12.2010 00:00 should be OK, but 31.12.2010 shouldn't.
I know I could use DateTime.TryParseExact like this:
Dim formats() As String = {"d.M.yyyy H:mm:ss", "dd.M.yyyy H:mm:ss", _
                           "d.MM.yyyy H:mm:ss", "d.MM.yyyy H:mm:ss", _
                           "d.M.yyyy H:mm", ...}
Dim result = DateTime.TryParseExact(userInput, formats, _
       Globalization.CultureInfo.CurrentCulture, ..., result)
but then I would hard-code the German format of specifying dates (day dot month dot year), which is considered bad practice and will make trouble should we ever want to localize our application. In addition, formats would be quite a large list of all possible combinations (one digit, two digits, ...).
Is there a more elegant solution?
© Stack Overflow or respective owner