Mega Code Archive

 
Categories / VB.Net / Development
 

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