How to check if a string is a valid DateTime according to a specific format in VB.NET

2 Answers

0 votes
Imports System
Imports System.Globalization

Public Class Program
    Public Shared Function IsDateTime(ByVal dt As String) As Boolean
        Dim tmpDate As DateTime
		
        Dim formats = {"dd/MM/yyyy", "yyyy-MM-dd"}
		
        Return DateTime.TryParseExact(dt, formats, CultureInfo.InvariantCulture, DateTimeStyles.None, tmpDate)
    End Function

    Public Shared Sub Main()
        Console.WriteLine(IsDateTime(DateTime.Now.ToString()))
		
        Console.WriteLine(IsDateTime("24082023"))
		
        Console.WriteLine(IsDateTime("24/08/2023"))
		
        Console.WriteLine(IsDateTime("2023-08-24"))
		
        Console.WriteLine(IsDateTime("9/4/2023 8:30:53 AM"))
    End Sub
End Class



		
		
' run:
'
' False
' False
' True
' True
' False
'

 



answered Sep 4, 2023 by avibootz
0 votes
Imports System
Imports System.Globalization

Public Class Program
    Public Shared Function IsDateTime(ByVal dt As String, ByVal formats As String()) As Boolean
        Dim tmpDate As DateTime
		
        Return DateTime.TryParseExact(dt, formats, CultureInfo.InvariantCulture, DateTimeStyles.None, tmpDate)
    End Function

    Public Shared Sub Main()
        Console.WriteLine(IsDateTime(DateTime.Now.ToString(), {"dd/MM/yyyy", "yyyy-MM-dd"}))
		
        Console.WriteLine(IsDateTime("24082023", {"dd/MM/yyyy", "yyyy-MM-dd"}))
		
        Console.WriteLine(IsDateTime("24/08/2023", {"dd/MM/yyyy", "yyyy-MM-dd"}))
		
        Console.WriteLine(IsDateTime("2023-08-24", {"dd/MM/yyyy", "yyyy-MM-dd"}))
		
        Console.WriteLine(IsDateTime("9/4/2023 8:30:53 AM", {"dd/MM/yyyy", "yyyy-MM-dd"}))
    End Sub
End Class




		
		
' run:
'
' False
' False
' True
' True
' False
'

 



answered Sep 4, 2023 by avibootz
...