Convert.ToDateTime Method (Object, IFormatProvider) converts object to DateTime using culture-specific format
Imports System.Globalization Module Example Public Sub Main() Dim cultureNames() As String = { "en-US", "hu-HU", "pt-PT" } Dim objects() As Object = { #1/1/2010#, "today","05/10/2010 6:13:18 PM", "September 8, 1899" } For Each cultureName As String In cultureNames Console.WriteLine("{0} culture:", cultureName) Dim provider As New CustomProvider(cultureName) For Each obj As Object In objects Try Dim dateValue As Date = Convert.ToDateTime(obj, provider) Console.WriteLine("{0} --> {1}", obj,dateValue.ToString(New CultureInfo(cultureName))) Catch e As FormatException Console.WriteLine("FormatException") Catch e As InvalidCastException Console.WriteLine("InvalidCastException") End Try Next Console.WriteLine() Next End Sub End Module Public Class CustomProvider : Implements IFormatProvider Private cultureName As String Public Sub New(cultureName As String) Me.cultureName = cultureName End Sub Public Function GetFormat(formatType As Type) As Object _ Implements IFormatProvider.GetFormat If formatType Is GetType(DateTimeFormatInfo) Then Console.Write("(CustomProvider retrieved.) ") Return New CultureInfo(cultureName).GetFormat(formatType) Else Return Nothing End If End Function End Class