nallas
nallas

Reputation: 79

string not recognized as valid date time vb.net

i am getting "string not recognized as valid date" error while parsing date

Dim reviewDateString = "‎02‎/14‎/‎2019‎ ‎15‎:‎06‎:‎02"
DateTime.ParseExact(reviewDateString, "MM/dd/yyyy HH:mm:ss",
        System.Globalization.DateTimeFormatInfo.InvariantInfo)

I have also tried with MM/dd/yyyy H:mm:ss format as well. That didnt work either. Could anyone let me know wjat mistake i am doing.

Upvotes: 0

Views: 138

Answers (1)

ps2goat
ps2goat

Reputation: 8485

When I pasted your exact code into dotnetfiddle.net, I can see non-visible characters (represented by a dot). You need to clean your reviewDateString to remove those.

enter image description here

Update: Added an example of how to use regular expressions to parse non-visible chars (invalid date string chars)

Working fiddle: https://dotnetfiddle.net/iQNhrp

Imports System
Imports System.Text.RegularExpressions

Public Module Module1
    Public Sub Main()
        Dim reviewDateString = "‎02‎/14‎/‎2019‎ ‎15‎:‎06‎:‎02"
        Dim parsedDateString = RegEx.Replace(reviewDateString, "[^0-9a-zA-Z :/]", String.Empty)

        Console.WriteLine("Copy and paste this into dotnetfiddle to see it has invisible characters:")
        Console.WriteLine(reviewDateString)

        Console.WriteLine()

        Console.WriteLine("Copy and paste this into dotnetfiddle to see it has no invisible characters, and is a valid date string.")
        Console.WriteLine(parsedDateString)

        ' no parse errors
        DateTime.ParseExact(parsedDateString, "MM/dd/yyyy HH:mm:ss", System.Globalization.DateTimeFormatInfo.InvariantInfo)
    End Sub
End Module

Upvotes: 3

Related Questions