Freigeben über


Convert.ToDateTime Methode

Definition

Konvertiert einen angegebenen Wert in einen DateTime-Wert.

Überlädt

ToDateTime(Single)

Beim Aufrufen dieser Methode wird immer eine InvalidCastException ausgelöst.

ToDateTime(String)

Konvertiert die angegebene Zeichenfolgendarstellung eines Datums und einer Uhrzeit in einen entsprechenden Datums- und Uhrzeitwert.

ToDateTime(UInt16)

Beim Aufrufen dieser Methode wird immer eine InvalidCastException ausgelöst.

ToDateTime(String, IFormatProvider)

Konvertiert die angegebene Zeichenfolgendarstellung einer Zahl unter Verwendung der angegebenen kulturspezifischen Formatierungsinformationen in ein entsprechendes Datum und eine entsprechende Uhrzeit.

ToDateTime(UInt64)

Beim Aufrufen dieser Methode wird immer eine InvalidCastException ausgelöst.

ToDateTime(Object, IFormatProvider)

Konvertiert den Wert des angegebenen Objekts unter Verwendung der angegebenen kulturspezifischen Formatierungsinformationen in ein DateTime-Objekt.

ToDateTime(SByte)

Beim Aufrufen dieser Methode wird immer eine InvalidCastException ausgelöst.

ToDateTime(UInt32)

Beim Aufrufen dieser Methode wird immer eine InvalidCastException ausgelöst.

ToDateTime(Object)

Konvertiert den Wert des angegebenen Objekts in ein DateTime-Objekt.

ToDateTime(Int16)

Beim Aufrufen dieser Methode wird immer eine InvalidCastException ausgelöst.

ToDateTime(Int32)

Beim Aufrufen dieser Methode wird immer eine InvalidCastException ausgelöst.

ToDateTime(Int64)

Beim Aufrufen dieser Methode wird immer eine InvalidCastException ausgelöst.

ToDateTime(Double)

Beim Aufrufen dieser Methode wird immer eine InvalidCastException ausgelöst.

ToDateTime(Decimal)

Beim Aufrufen dieser Methode wird immer eine InvalidCastException ausgelöst.

ToDateTime(DateTime)

Gibt das angegebene DateTime Objekt zurück. Es wird keine wirkliche Konvertierung durchgeführt.

ToDateTime(Char)

Beim Aufrufen dieser Methode wird immer eine InvalidCastException ausgelöst.

ToDateTime(Byte)

Beim Aufrufen dieser Methode wird immer eine InvalidCastException ausgelöst.

ToDateTime(Boolean)

Beim Aufrufen dieser Methode wird immer eine InvalidCastException ausgelöst.

ToDateTime(Single)

Quelle:
Convert.cs
Quelle:
Convert.cs
Quelle:
Convert.cs

Beim Aufrufen dieser Methode wird immer eine InvalidCastException ausgelöst.

public:
 static DateTime ToDateTime(float value);
public static DateTime ToDateTime (float value);
static member ToDateTime : single -> DateTime
Public Shared Function ToDateTime (value As Single) As DateTime

Parameter

value
Single

Der zu konvertierende Gleitkommawert mit einfacher Genauigkeit.

Gibt zurück

Diese Konvertierung wird nicht unterstützt. Es wird kein Wert zurückgegeben.

Ausnahmen

Diese Konvertierung wird nicht unterstützt.

Weitere Informationen

Gilt für:

ToDateTime(String)

Quelle:
Convert.cs
Quelle:
Convert.cs
Quelle:
Convert.cs

Konvertiert die angegebene Zeichenfolgendarstellung eines Datums und einer Uhrzeit in einen entsprechenden Datums- und Uhrzeitwert.

public:
 static DateTime ToDateTime(System::String ^ value);
public static DateTime ToDateTime (string value);
public static DateTime ToDateTime (string? value);
static member ToDateTime : string -> DateTime
Public Shared Function ToDateTime (value As String) As DateTime

Parameter

value
String

Die Zeichenfolgendarstellung eines Datums- und Uhrzeitwerts.

Gibt zurück

Das Datums- und Uhrzeitäquivalent des Werts von valueoder das Datums- und Uhrzeitäquivalent von DateTime.MinValue , wenn value ist null.

Ausnahmen

value ist keine ordnungsgemäß formatierte Datums- und Zeitzeichenfolge.

Beispiele

Im folgenden Beispiel wird die ToDateTime -Methode verwendet, um verschiedene Zeichenfolgendarstellungen von Datums- und Uhrzeitangaben in Werte zu DateTime konvertieren.

using System;

public class ConversionToDateTime
{
   public static void Main()
   {
      string dateString = null;

      // Convert a null string.
      ConvertToDateTime(dateString);

      // Convert an empty string.
      dateString = String.Empty;
      ConvertToDateTime(dateString);

      // Convert a non-date string.
      dateString = "not a date";
      ConvertToDateTime(dateString);

      // Try to convert various date strings.
      dateString = "05/01/1996";
      ConvertToDateTime(dateString);
      dateString = "Tue Apr 28, 2009";
      ConvertToDateTime(dateString);
      dateString = "Wed Apr 28, 2009";
      ConvertToDateTime(dateString);
      dateString = "06 July 2008 7:32:47 AM";
      ConvertToDateTime(dateString);
      dateString = "17:32:47.003";
      ConvertToDateTime(dateString);
      // Convert a string returned by DateTime.ToString("R").
      dateString = "Sat, 10 May 2008 14:32:17 GMT";
      ConvertToDateTime(dateString);
      // Convert a string returned by DateTime.ToString("o").
      dateString = "2009-05-01T07:54:59.9843750-04:00";
      ConvertToDateTime(dateString);
   }

   private static void ConvertToDateTime(string value)
   {
      DateTime convertedDate;
      try {
         convertedDate = Convert.ToDateTime(value);
         Console.WriteLine("'{0}' converts to {1} {2} time.",
                           value, convertedDate,
                           convertedDate.Kind.ToString());
      }
      catch (FormatException) {
         Console.WriteLine("'{0}' is not in the proper format.", value);
      }
   }
}
// The example displays the following output:
//    '' converts to 1/1/0001 12:00:00 AM Unspecified time.
//    '' is not in the proper format.
//    'not a date' is not in the proper format.
//    '05/01/1996' converts to 5/1/1996 12:00:00 AM Unspecified time.
//    'Tue Apr 28, 2009' converts to 4/28/2009 12:00:00 AM Unspecified time.
//    'Wed Apr 28, 2009' is not in the proper format.
//    '06 July 2008 7:32:47 AM' converts to 7/6/2008 7:32:47 AM Unspecified time.
//    '17:32:47.003' converts to 5/30/2008 5:32:47 PM Unspecified time.
//    'Sat, 10 May 2008 14:32:17 GMT' converts to 5/10/2008 7:32:17 AM Local time.
//    '2009-05-01T07:54:59.9843750-04:00' converts to 5/1/2009 4:54:59 AM Local time.
open System

let convertToDateTime (value: string) =
    try
        let convertedDate = Convert.ToDateTime value
        printfn $"'{value}' converts to {convertedDate} {convertedDate.Kind} time."
    with :?FormatException ->
        printfn $"'{value}' is not in the proper format."

[<EntryPoint>]
let main _ =
    let dateString = null

    // Convert a null string.
    convertToDateTime dateString

    // Convert an empty string.
    let dateString = String.Empty
    convertToDateTime dateString

    // Convert a non-date string.
    let dateString = "not a date"
    convertToDateTime dateString

    // Try to convert various date strings.
    let dateString = "05/01/1996"
    convertToDateTime dateString
    let dateString = "Tue Apr 28, 2009"
    convertToDateTime dateString
    let dateString = "Wed Apr 28, 2009"
    convertToDateTime dateString
    let dateString = "06 July 2008 7:32:47 AM"
    convertToDateTime dateString
    let dateString = "17:32:47.003"
    convertToDateTime dateString
    // Convert a string returned by DateTime.ToString("R").
    let dateString = "Sat, 10 May 2008 14:32:17 GMT"
    convertToDateTime dateString
    // Convert a string returned by DateTime.ToString("o").
    let dateString = "2009-05-01T07:54:59.9843750-04:00"
    convertToDateTime dateString

    0

// The example displays the following output:
//    '' converts to 1/1/0001 12:00:00 AM Unspecified time.
//    '' is not in the proper format.
//    'not a date' is not in the proper format.
//    '05/01/1996' converts to 5/1/1996 12:00:00 AM Unspecified time.
//    'Tue Apr 28, 2009' converts to 4/28/2009 12:00:00 AM Unspecified time.
//    'Wed Apr 28, 2009' is not in the proper format.
//    '06 July 2008 7:32:47 AM' converts to 7/6/2008 7:32:47 AM Unspecified time.
//    '17:32:47.003' converts to 5/30/2008 5:32:47 PM Unspecified time.
//    'Sat, 10 May 2008 14:32:17 GMT' converts to 5/10/2008 7:32:17 AM Local time.
//    '2009-05-01T07:54:59.9843750-04:00' converts to 5/1/2009 4:54:59 AM Local time.
Module ConversionToDateTime
   Public Sub Main()
      Dim dateString As String = Nothing
      
      ' Convert a null string.
      ConvertToDateTime(dateString)
      
      ' Convert an empty string.
      dateString = String.Empty
      ConvertToDateTime(dateString)
      
      ' Convert a non-date string.
      dateString = "not a date"
      ConvertToDateTime(dateString)
      
      ' Try to convert various date strings.
      dateString = "05/01/1996"
      ConvertToDateTime(dateString)
      dateString = "Tue Apr 28, 2009"
      ConvertToDateTime(dateString)
      dateString = "Wed Apr 28, 2009"
      ConvertToDateTime(dateString)
      dateString = "06 July 2008 7:32:47 AM"
      ConvertToDateTime(dateString)
      dateString = "17:32:47.003"
      ConvertToDateTime(dateString)
      ' Convert a string returned by DateTime.ToString("R").
      dateString = "Sat, 10 May 2008 14:32:17 GMT"
      ConvertToDateTime(dateString)
      ' Convert a string returned by DateTime.ToString("o")
      dateString = "2009-05-01T07:54:59.9843750-04:00"
      ConvertToDateTime(dateString)
   End Sub
   
   Private Sub ConvertToDateTime(value As String)
      Dim convertedDate As Date
      Try
         convertedDate = Convert.ToDateTime(value)
         Console.WriteLine("'{0}' converts to {1}.", value, convertedDate)
      Catch e As FormatException
         Console.WriteLine("'{0}' is not in the proper format.", value)
      End Try
   End Sub
End Module
' The example displays the following output:
'    '' converts to 1/1/0001 12:00:00 AM.
'    '' is not in the proper format.
'    'not a date' is not in the proper format.
'    '05/01/1996' converts to 5/1/1996 12:00:00 AM.
'    'Tue Apr 28, 2009' converts to 4/28/2009 12:00:00 AM.
'    'Wed Apr 28, 2009' is not in the proper format.
'    '06 July 2008 7:32:47 AM' converts to 7/6/2008 7:32:47 AM.
'    '17:32:47.003' converts to 5/30/2008 5:32:47 PM.
'    'Sat, 10 May 2008 14:32:17 GMT' converts to 5/10/2008 7:32:17 AM.
'    '2009-05-01T07:54:59.9843750-04:00' converts to 5/1/2009 4:54:59 AM.

Hinweise

Wenn value nicht null, ist der Rückgabewert das Ergebnis des Aufrufens der DateTime.Parse -Methode unter value Verwendung der Formatierungsinformationen in einem DateTimeFormatInfo Objekt, das für die aktuelle Kultur initialisiert wird. Das value Argument muss die Darstellung eines Datums und einer Uhrzeit in einem der im DateTimeFormatInfo Thema beschriebenen Formate enthalten. Wenn value gleich null ist, gibt die Methode DateTime.MinValue zurück.

Diese Methode versucht, vollständig zu analysieren value und zu vermeiden, dass ein FormatExceptionausgelöst wird. Fehlende Monats-, Tages- und Jahresinformationen werden mit dem aktuellen Datum abgeschlossen. Wenn value nur ein Datum und keine Uhrzeit enthalten sind, geht diese Methode von einer Uhrzeit von Mitternacht aus. Alle führenden, inneren oder nachfolgenden Leerzeichen in value werden ignoriert.

Wenn Sie es vorziehen, keine Ausnahme zu behandeln, wenn die Konvertierung fehlschlägt, können Sie stattdessen die DateTime.TryParse -Methode aufrufen. Es gibt einen Boolean Wert zurück, der angibt, ob die Konvertierung erfolgreich war oder fehlgeschlagen ist.

Weitere Informationen

Gilt für:

ToDateTime(UInt16)

Quelle:
Convert.cs
Quelle:
Convert.cs
Quelle:
Convert.cs

Wichtig

Diese API ist nicht CLS-kompatibel.

Beim Aufrufen dieser Methode wird immer eine InvalidCastException ausgelöst.

public:
 static DateTime ToDateTime(System::UInt16 value);
[System.CLSCompliant(false)]
public static DateTime ToDateTime (ushort value);
[<System.CLSCompliant(false)>]
static member ToDateTime : uint16 -> DateTime
Public Shared Function ToDateTime (value As UShort) As DateTime

Parameter

value
UInt16

Die zu konvertierende 16-Bit-Ganzzahl ohne Vorzeichen.

Gibt zurück

Diese Konvertierung wird nicht unterstützt. Es wird kein Wert zurückgegeben.

Attribute

Ausnahmen

Diese Konvertierung wird nicht unterstützt.

Weitere Informationen

Gilt für:

ToDateTime(String, IFormatProvider)

Quelle:
Convert.cs
Quelle:
Convert.cs
Quelle:
Convert.cs

Konvertiert die angegebene Zeichenfolgendarstellung einer Zahl unter Verwendung der angegebenen kulturspezifischen Formatierungsinformationen in ein entsprechendes Datum und eine entsprechende Uhrzeit.

public:
 static DateTime ToDateTime(System::String ^ value, IFormatProvider ^ provider);
public static DateTime ToDateTime (string value, IFormatProvider provider);
public static DateTime ToDateTime (string? value, IFormatProvider? provider);
static member ToDateTime : string * IFormatProvider -> DateTime
Public Shared Function ToDateTime (value As String, provider As IFormatProvider) As DateTime

Parameter

value
String

Eine Zeichenfolge, die eine zu konvertierende Datums- und Zeitangabe enthält.

provider
IFormatProvider

Ein Objekt, das kulturspezifische Formatierungsinformationen bereitstellt.

Gibt zurück

Das Datums- und Uhrzeitäquivalent des Werts von valueoder das Datums- und Uhrzeitäquivalent von DateTime.MinValue , wenn value ist null.

Ausnahmen

value ist keine ordnungsgemäß formatierte Datums- und Zeitzeichenfolge.

Beispiele

Im folgenden Beispiel werden Zeichenfolgendarstellungen von Datumswerten mithilfe eines -Objekts mit der ToDateTime -Methode IFormatProvider konvertiert.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      Console.WriteLine("{0,-18}{1,-12}{2}\n", "Date String", "Culture", "Result");

      string[] cultureNames = { "en-US", "ru-RU","ja-JP" };
      string[] dateStrings = { "01/02/09", "2009/02/03",  "01/2009/03",
                               "01/02/2009", "21/02/09", "01/22/09",
                               "01/02/23" };
      // Iterate each culture name in the array.
      foreach (string cultureName in cultureNames)
      {
         CultureInfo culture = new CultureInfo(cultureName);

         // Parse each date using the designated culture.
         foreach (string dateStr in dateStrings)
         {
            DateTime dateTimeValue;
            try {
               dateTimeValue = Convert.ToDateTime(dateStr, culture);
                // Display the date and time in a fixed format.
                Console.WriteLine("{0,-18}{1,-12}{2:yyyy-MMM-dd}",
                                  dateStr, cultureName, dateTimeValue);
            }
            catch (FormatException e) {
                Console.WriteLine("{0,-18}{1,-12}{2}",
                                  dateStr, cultureName, e.GetType().Name);
            }
         }
         Console.WriteLine();
      }
   }
}
open System
open System.Globalization

printfn $"""{"Date String",-18}{"Culture",-12}{"Result"}\n"""

let cultureNames = [ "en-US"; "ru-RU"; "ja-JP" ]
let dateStrings =
    [ "01/02/09"; "2009/02/03"; "01/2009/03"
      "01/02/2009"; "21/02/09"; "01/22/09"; "01/02/23" ]
// Iterate each culture name in the array.
for cultureName in cultureNames do
    let culture = CultureInfo cultureName

    // Parse each date using the designated culture.
    for dateStr in dateStrings do
        try
            let dateTimeValue = Convert.ToDateTime(dateStr, culture)
            // Display the date and time in a fixed format.
            printfn $"""{dateStr,-18}{cultureName,-12}{dateTimeValue.ToString "yyyy-MMM-dd"}"""
        with :? FormatException as e ->
            printfn $"{dateStr,-18}{cultureName,-12}{e.GetType().Name}"
    printfn ""
Imports System.Globalization

Module Example
   Public Sub Main( )
      Console.WriteLine("{0,-18}{1,-12}{2}", "Date String", "Culture", "Result")
      Console.WriteLine()

      Dim cultureNames() As String = { "en-US", "ru-RU","ja-JP" }
      Dim dateStrings() As String = { "01/02/09", "2009/02/03",  "01/2009/03", _
                                      "01/02/2009", "21/02/09", "01/22/09",   _
                                      "01/02/23" }
      ' Iterate each culture name in the array.
      For Each cultureName As String In cultureNames
         Dim culture As CultureInfo = New CultureInfo(cultureName)
        
         ' Parse each date using the designated culture.
         For Each dateStr As String In dateStrings
            Dim dateTimeValue As DateTime
            Try
               dateTimeValue = Convert.ToDateTime(dateStr, culture)
                ' Display the date and time in a fixed format.
                Console.WriteLine("{0,-18}{1,-12}{2:yyyy-MMM-dd}", _
                                  dateStr, cultureName, dateTimeValue)
            Catch e As FormatException 
                Console.WriteLine("{0,-18}{1,-12}{2}", _
                                  dateStr, cultureName, e.GetType().Name)
            End Try            
         Next
         Console.WriteLine()
      Next
   End Sub 
End Module 
' The example displays the following output:
'       Date String       Culture     Result
'       
'       01/02/09          en-US       2009-Jan-02
'       2009/02/03        en-US       2009-Feb-03
'       01/2009/03        en-US       2009-Jan-03
'       01/02/2009        en-US       2009-Jan-02
'       21/02/09          en-US       FormatException
'       01/22/09          en-US       2009-Jan-22
'       01/02/23          en-US       2023-Jan-02
'       
'       01/02/09          ru-RU       2009-Feb-01
'       2009/02/03        ru-RU       2009-Feb-03
'       01/2009/03        ru-RU       2009-Jan-03
'       01/02/2009        ru-RU       2009-Feb-01
'       21/02/09          ru-RU       2009-Feb-21
'       01/22/09          ru-RU       FormatException
'       01/02/23          ru-RU       2023-Feb-01
'       
'       01/02/09          ja-JP       2001-Feb-09
'       2009/02/03        ja-JP       2009-Feb-03
'       01/2009/03        ja-JP       2009-Jan-03
'       01/02/2009        ja-JP       2009-Jan-02
'       21/02/09          ja-JP       2021-Feb-09
'       01/22/09          ja-JP       FormatException
'       01/02/23          ja-JP       2001-Feb-23

Hinweise

Der Rückgabewert ist das Ergebnis des Aufrufs der DateTime.Parse(String, IFormatProvider) -Methode für value.

providerist eine IFormatProvider instance, die ein DateTimeFormatInfo -Objekt abruft. Das DateTimeFormatInfo -Objekt stellt kulturspezifische Informationen zum Format von bereit value. Wenn provider ist null, wird der DateTimeFormatInfo für die aktuelle Kultur verwendet.

Wenn Sie es vorziehen, keine Ausnahme zu behandeln, wenn die Konvertierung fehlschlägt, können Sie stattdessen die DateTime.TryParse -Methode aufrufen. Es gibt einen Boolean Wert zurück, der angibt, ob die Konvertierung erfolgreich war oder fehlgeschlagen ist.

Weitere Informationen

Gilt für:

ToDateTime(UInt64)

Quelle:
Convert.cs
Quelle:
Convert.cs
Quelle:
Convert.cs

Wichtig

Diese API ist nicht CLS-kompatibel.

Beim Aufrufen dieser Methode wird immer eine InvalidCastException ausgelöst.

public:
 static DateTime ToDateTime(System::UInt64 value);
[System.CLSCompliant(false)]
public static DateTime ToDateTime (ulong value);
[<System.CLSCompliant(false)>]
static member ToDateTime : uint64 -> DateTime
Public Shared Function ToDateTime (value As ULong) As DateTime

Parameter

value
UInt64

Die zu konvertierende 64-Bit-Ganzzahl ohne Vorzeichen.

Gibt zurück

Diese Konvertierung wird nicht unterstützt. Es wird kein Wert zurückgegeben.

Attribute

Ausnahmen

Diese Konvertierung wird nicht unterstützt.

Weitere Informationen

Gilt für:

ToDateTime(Object, IFormatProvider)

Quelle:
Convert.cs
Quelle:
Convert.cs
Quelle:
Convert.cs

Konvertiert den Wert des angegebenen Objekts unter Verwendung der angegebenen kulturspezifischen Formatierungsinformationen in ein DateTime-Objekt.

public:
 static DateTime ToDateTime(System::Object ^ value, IFormatProvider ^ provider);
public static DateTime ToDateTime (object value, IFormatProvider provider);
public static DateTime ToDateTime (object? value, IFormatProvider? provider);
static member ToDateTime : obj * IFormatProvider -> DateTime
Public Shared Function ToDateTime (value As Object, provider As IFormatProvider) As DateTime

Parameter

value
Object

Ein Objekt, das die IConvertible-Schnittstelle implementiert.

provider
IFormatProvider

Ein Objekt, das kulturspezifische Formatierungsinformationen bereitstellt.

Gibt zurück

Das Datums- und Uhrzeitäquivalent des Werts von valueoder das Datums- und Uhrzeitäquivalent von DateTime.MinValue , wenn value ist null.

Ausnahmen

value ist kein gültiger Datums- und Uhrzeitwert.

Die IConvertible-Schnittstelle wird von value nicht implementiert.

- oder -

Die Konvertierung wird nicht unterstützt.

Beispiele

Im folgenden Beispiel wird ein benutzerdefinierter Formatanbieter definiert, CustomProviderdessen GetFormat Methode eine Meldung an die Konsole ausgibt, dass sie aufgerufen wurde, und gibt dann das DateTimeFormatInfo Objekt der Kultur zurück, deren Name als Parameter an den Klassenkonstruktor übergeben wurde. Jedes dieser CustomProvider Objekte wird verwendet, um die Elemente in einem Objektarray in Datums- und Uhrzeitwerte zu konvertieren. Die Ausgabe gibt an, dass das CustomProvider -Objekt nur in der Konvertierung verwendet wird, wenn der Typ des value Parameters ein Stringist.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string[] cultureNames = { "en-US", "hu-HU", "pt-PT" };
      object[] objects = { 12, 17.2, false, new DateTime(2010, 1, 1), "today",
                           new System.Collections.ArrayList(), 'c',
                           "05/10/2009 6:13:18 PM", "September 8, 1899" };

      foreach (string cultureName in cultureNames)
      {
         Console.WriteLine("{0} culture:", cultureName);
         CustomProvider provider = new CustomProvider(cultureName);
         foreach (object obj in objects)
         {
            try {
               DateTime dateValue = Convert.ToDateTime(obj, provider);
               Console.WriteLine("{0} --> {1}", obj,
                                 dateValue.ToString(new CultureInfo(cultureName)));
            }
            catch (FormatException) {
               Console.WriteLine("{0} --> Bad Format", obj);
            }
            catch (InvalidCastException) {
               Console.WriteLine("{0} --> Conversion Not Supported", obj);
            }
         }
         Console.WriteLine();
      }
   }
}

public class CustomProvider : IFormatProvider
{
   private string cultureName;

   public CustomProvider(string cultureName)
   {
      this.cultureName = cultureName;
   }

   public object GetFormat(Type formatType)
   {
      if (formatType == typeof(DateTimeFormatInfo))
      {
         Console.Write("(CustomProvider retrieved.) ");
         return new CultureInfo(cultureName).GetFormat(formatType);
      }
      else
      {
         return null;
      }
   }
}
// The example displays the following output:
//    en-US culture:
//    12 --> Conversion Not Supported
//    17.2 --> Conversion Not Supported
//    False --> Conversion Not Supported
//    1/1/2010 12:00:00 AM --> 1/1/2010 12:00:00 AM
//    (CustomProvider retrieved.) today --> Bad Format
//    System.Collections.ArrayList --> Conversion Not Supported
//    c --> Conversion Not Supported
//    (CustomProvider retrieved.) 05/10/2009 6:13:18 PM --> 5/10/2009 6:13:18 PM
//    (CustomProvider retrieved.) September 8, 1899 --> 9/8/1899 12:00:00 AM
//
//    hu-HU culture:
//    12 --> Conversion Not Supported
//    17.2 --> Conversion Not Supported
//    False --> Conversion Not Supported
//    1/1/2010 12:00:00 AM --> 2010. 01. 01. 0:00:00
//    (CustomProvider retrieved.) today --> Bad Format
//    System.Collections.ArrayList --> Conversion Not Supported
//    c --> Conversion Not Supported
//    (CustomProvider retrieved.) 05/10/2009 6:13:18 PM --> 2009. 05. 10. 18:13:18
//    (CustomProvider retrieved.) September 8, 1899 --> 1899. 09. 08. 0:00:00
//
//    pt-PT culture:
//    12 --> Conversion Not Supported
//    17.2 --> Conversion Not Supported
//    False --> Conversion Not Supported
//    1/1/2010 12:00:00 AM --> 01-01-2010 0:00:00
//    (CustomProvider retrieved.) today --> Bad Format
//    System.Collections.ArrayList --> Conversion Not Supported
//    c --> Conversion Not Supported
//    (CustomProvider retrieved.) 05/10/2009 6:13:18 PM --> 05-10-2009 18:13:18
//    (CustomProvider retrieved.) September 8, 1899 --> 08-09-1899 0:00:00
open System
open System.Globalization

type CustomProvider(cultureName: string) =
    interface IFormatProvider with
        member _.GetFormat(formatType) =
            if formatType = typeof<DateTimeFormatInfo> then
                printf "(CustomProvider retrieved.) "
                CultureInfo(cultureName).GetFormat formatType
            else
                null

let cultureNames = [ "en-US"; "hu-HU"; "pt-PT" ]
let objects: obj list =
    [ 12; 17.2; false; DateTime(2010, 1, 1); "today"
      System.Collections.ArrayList(); 'c'
      "05/10/2009 6:13:18 PM"; "September 8, 1899" ]

for cultureName in cultureNames do
    printfn $"{cultureName} culture:"
    let provider = CustomProvider cultureName
    for obj in objects do
        try
            let dateValue = Convert.ToDateTime(obj, provider)
            printfn $"{obj} --> {dateValue.ToString(CultureInfo cultureName)}"
        with
        | :? FormatException ->
            printfn $"{obj} --> Bad Format"
        | :? InvalidCastException ->
            printfn $"{obj} --> Conversion Not Supported"
    printfn ""

// The example displays the following output:
//    en-US culture:
//    12 --> Conversion Not Supported
//    17.2 --> Conversion Not Supported
//    False --> Conversion Not Supported
//    1/1/2010 12:00:00 AM --> 1/1/2010 12:00:00 AM
//    (CustomProvider retrieved.) today --> Bad Format
//    System.Collections.ArrayList --> Conversion Not Supported
//    c --> Conversion Not Supported
//    (CustomProvider retrieved.) 05/10/2009 6:13:18 PM --> 5/10/2009 6:13:18 PM
//    (CustomProvider retrieved.) September 8, 1899 --> 9/8/1899 12:00:00 AM
//
//    hu-HU culture:
//    12 --> Conversion Not Supported
//    17.2 --> Conversion Not Supported
//    False --> Conversion Not Supported
//    1/1/2010 12:00:00 AM --> 2010. 01. 01. 0:00:00
//    (CustomProvider retrieved.) today --> Bad Format
//    System.Collections.ArrayList --> Conversion Not Supported
//    c --> Conversion Not Supported
//    (CustomProvider retrieved.) 05/10/2009 6:13:18 PM --> 2009. 05. 10. 18:13:18
//    (CustomProvider retrieved.) September 8, 1899 --> 1899. 09. 08. 0:00:00
//
//    pt-PT culture:
//    12 --> Conversion Not Supported
//    17.2 --> Conversion Not Supported
//    False --> Conversion Not Supported
//    1/1/2010 12:00:00 AM --> 01-01-2010 0:00:00
//    (CustomProvider retrieved.) today --> Bad Format
//    System.Collections.ArrayList --> Conversion Not Supported
//    c --> Conversion Not Supported
//    (CustomProvider retrieved.) 05/10/2009 6:13:18 PM --> 05-10-2009 18:13:18
//    (CustomProvider retrieved.) September 8, 1899 --> 08-09-1899 0:00:00
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim cultureNames() As String = { "en-US", "hu-HU", "pt-PT" }
      Dim objects() As Object = { 12, 17.2, False, #1/1/2010#, "today", _
                                  New System.Collections.ArrayList(), "c"c, _
                                  "05/10/2009 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("{0} --> Bad Format", obj)
            Catch e As InvalidCastException
               Console.WriteLine("{0} --> Conversion Not Supported", obj)
            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
' The example displays the following output:
'    en-US culture:
'    12 --> Conversion Not Supported
'    17.2 --> Conversion Not Supported
'    False --> Conversion Not Supported
'    1/1/2010 12:00:00 AM --> 1/1/2010 12:00:00 AM
'    (CustomProvider retrieved.) today --> Bad Format
'    System.Collections.ArrayList --> Conversion Not Supported
'    c --> Conversion Not Supported
'    (CustomProvider retrieved.) 05/10/2009 6:13:18 PM --> 5/10/2009 6:13:18 PM
'    (CustomProvider retrieved.) September 8, 1899 --> 9/8/1899 12:00:00 AM
'    
'    hu-HU culture:
'    12 --> Conversion Not Supported
'    17.2 --> Conversion Not Supported
'    False --> Conversion Not Supported
'    1/1/2010 12:00:00 AM --> 2010. 01. 01. 0:00:00
'    (CustomProvider retrieved.) today --> Bad Format
'    System.Collections.ArrayList --> Conversion Not Supported
'    c --> Conversion Not Supported
'    (CustomProvider retrieved.) 05/10/2009 6:13:18 PM --> 2009. 05. 10. 18:13:18
'    (CustomProvider retrieved.) September 8, 1899 --> 1899. 09. 08. 0:00:00
'    
'    pt-PT culture:
'    12 --> Conversion Not Supported
'    17.2 --> Conversion Not Supported
'    False --> Conversion Not Supported
'    1/1/2010 12:00:00 AM --> 01-01-2010 0:00:00
'    (CustomProvider retrieved.) today --> Bad Format
'    System.Collections.ArrayList --> Conversion Not Supported
'    c --> Conversion Not Supported
'    (CustomProvider retrieved.) 05/10/2009 6:13:18 PM --> 05-10-2009 18:13:18
'    (CustomProvider retrieved.) September 8, 1899 --> 08-09-1899 0:00:00

Hinweise

Der Rückgabewert ist das Ergebnis des Aufrufs der IConvertible.ToDateTime -Methode des zugrunde liegenden Typs von value.

provider ermöglicht es dem Benutzer, kulturspezifische Konvertierungsinformationen zum Inhalt von valueanzugeben. Wenn es sich z. B value . um ein String Datum handelt, provider könnte kulturspezifische Informationen zur Notation zur Darstellung dieses Datums bereitgestellt werden. provider ist an der Konvertierung von value beteiligt, wenn der Laufzeittyp von value ein Stringoder ein value benutzerdefinierter Typ ist, dessen IConvertible.ToDateTime Implementierung verwendet provider. Wenn der Laufzeittyp von value und provider ist Stringnull, wird das CultureInfo Objekt verwendet, das die aktuelle Kultur darstellt.

Weitere Informationen

Gilt für:

ToDateTime(SByte)

Quelle:
Convert.cs
Quelle:
Convert.cs
Quelle:
Convert.cs

Wichtig

Diese API ist nicht CLS-kompatibel.

Beim Aufrufen dieser Methode wird immer eine InvalidCastException ausgelöst.

public:
 static DateTime ToDateTime(System::SByte value);
[System.CLSCompliant(false)]
public static DateTime ToDateTime (sbyte value);
[<System.CLSCompliant(false)>]
static member ToDateTime : sbyte -> DateTime
Public Shared Function ToDateTime (value As SByte) As DateTime

Parameter

value
SByte

Die zu konvertierende 8-Bit-Ganzzahl mit Vorzeichen.

Gibt zurück

Diese Konvertierung wird nicht unterstützt. Es wird kein Wert zurückgegeben.

Attribute

Ausnahmen

Diese Konvertierung wird nicht unterstützt.

Weitere Informationen

Gilt für:

ToDateTime(UInt32)

Quelle:
Convert.cs
Quelle:
Convert.cs
Quelle:
Convert.cs

Wichtig

Diese API ist nicht CLS-kompatibel.

Beim Aufrufen dieser Methode wird immer eine InvalidCastException ausgelöst.

public:
 static DateTime ToDateTime(System::UInt32 value);
[System.CLSCompliant(false)]
public static DateTime ToDateTime (uint value);
[<System.CLSCompliant(false)>]
static member ToDateTime : uint32 -> DateTime
Public Shared Function ToDateTime (value As UInteger) As DateTime

Parameter

value
UInt32

Die zu konvertierende 32-Bit-Ganzzahl ohne Vorzeichen.

Gibt zurück

Diese Konvertierung wird nicht unterstützt. Es wird kein Wert zurückgegeben.

Attribute

Ausnahmen

Diese Konvertierung wird nicht unterstützt.

Weitere Informationen

Gilt für:

ToDateTime(Object)

Quelle:
Convert.cs
Quelle:
Convert.cs
Quelle:
Convert.cs

Konvertiert den Wert des angegebenen Objekts in ein DateTime-Objekt.

public:
 static DateTime ToDateTime(System::Object ^ value);
public static DateTime ToDateTime (object value);
public static DateTime ToDateTime (object? value);
static member ToDateTime : obj -> DateTime
Public Shared Function ToDateTime (value As Object) As DateTime

Parameter

value
Object

Ein Objekt, das die IConvertible-Schnittstelle implementiert, oder null.

Gibt zurück

Die Datums- und Uhrzeitäquivalente des Werts von valueoder ein Datums- und Uhrzeitäquivalent von DateTime.MinValue , wenn value ist null.

Ausnahmen

value ist kein gültiger Datums- und Uhrzeitwert.

Die IConvertible-Schnittstelle wird von value nicht implementiert.

- oder -

Die Konvertierung wird nicht unterstützt.

Beispiele

Im folgenden Beispiel wird die ToDateTime(Object) -Methode mit einer Vielzahl von Object Variablen aufgerufen.

using System;

public class ConversionToDateTime
{
   public static void Main()
   {
      // Try converting an integer.
      int number = 16352;
      ConvertToDateTime(number);

      // Convert a null.
      object obj = null;
      ConvertToDateTime(obj);

      // Convert a non-date string.
      string nonDateString = "monthly";
      ConvertToDateTime(nonDateString);

      // Try to convert various date strings.
      string dateString;
      dateString = "05/01/1996";
      ConvertToDateTime(dateString);
      dateString = "Tue Apr 28, 2009";
      ConvertToDateTime(dateString);
      dateString = "06 July 2008 7:32:47 AM";
      ConvertToDateTime(dateString);
      dateString = "17:32:47.003";
      ConvertToDateTime(dateString);
   }

   private static void ConvertToDateTime(object value)
   {
      DateTime convertedDate;
      try {
         convertedDate = Convert.ToDateTime(value);
         Console.WriteLine("'{0}' converts to {1}.", value, convertedDate);
      }
      catch (FormatException) {
         Console.WriteLine("'{0}' is not in the proper format.", value);
      }
      catch (InvalidCastException) {
         Console.WriteLine("Conversion of the {0} '{1}' is not supported",
                           value.GetType().Name, value);
      }
   }
}
// The example displays the following output:
//       Conversion of the Int32 '16352' is not supported
//       '' converts to 1/1/0001 12:00:00 AM.
//       'monthly' is not in the proper format.
//       '05/01/1996' converts to 5/1/1996 12:00:00 AM.
//       'Tue Apr 28, 2009' converts to 4/28/2009 12:00:00 AM.
//       '06 July 2008 7:32:47 AM' converts to 7/6/2008 7:32:47 AM.
//       '17:32:47.003' converts to 5/28/2008 5:32:47 PM.
open System

let convertToDateTime (value: obj) =
    try
        let convertedDate = Convert.ToDateTime value
        printfn $"'{value}' converts to {convertedDate}."
    with
    | :? FormatException ->
        printfn $"'{value}' is not in the proper format."
    | :? InvalidCastException ->
        printfn $"Conversion of the {value.GetType().Name} '{value}' is not supported"

[<EntryPoint>]
let main _ =
    // Try converting an integer.
    let number = 16352
    convertToDateTime number

    // Convert a null.
    let obj = box null
    convertToDateTime obj

    // Convert a non-date string.
    let nonDateString = "monthly"
    convertToDateTime nonDateString

    // Try to convert various date strings.
    let dateString = "05/01/1996"
    convertToDateTime dateString
    let dateString = "Tue Apr 28, 2009"
    convertToDateTime dateString
    let dateString = "06 July 2008 7:32:47 AM"
    convertToDateTime dateString
    let dateString = "17:32:47.003"
    convertToDateTime dateString

    0

// The example displays the following output:
//       Conversion of the Int32 '16352' is not supported
//       '' converts to 1/1/0001 12:00:00 AM.
//       'monthly' is not in the proper format.
//       '05/01/1996' converts to 5/1/1996 12:00:00 AM.
//       'Tue Apr 28, 2009' converts to 4/28/2009 12:00:00 AM.
//       '06 July 2008 7:32:47 AM' converts to 7/6/2008 7:32:47 AM.
//       '17:32:47.003' converts to 5/28/2008 5:32:47 PM.
Module ConversionToDateTime
   Public Sub Main()
      ' Try converting an integer.
      Dim number As Integer = 16352
      ConvertToDateTime(number)
      
      ' Convert a null.
      Dim obj As Object = Nothing
      ConvertToDateTime(obj)
      
      ' Convert a non-date string.
      Dim nonDateString As String = "monthly"
      ConvertToDateTime(nonDateString)
      
      ' Try to convert various dates.
      Dim dateString As String 
      dateString = "05/01/1996"
      ConvertToDateTime(dateString)
      dateString = "Tue Apr 28, 2009"
      ConvertToDateTime(dateString)
      dateString = "06 July 2008 7:32:47 AM"
      ConvertToDateTime(dateString)
      dateString = "17:32:47.003"
      ConvertToDateTime(dateString)
   End Sub
   
   Private Sub ConvertToDateTime(value As Object)
      Dim convertedDate As Date
      Try
         convertedDate = Convert.ToDateTime(value)
         Console.WriteLine("'{0}' converts to {1}.", value, convertedDate)
      Catch e As FormatException
         Console.WriteLine("'{0}' is not in the proper format.", value)
      Catch e As InvalidCastException
         Console.WriteLine("Conversion of the {0} '{1}' is not supported", _
                           value.GetType().Name, value)
      End Try
   End Sub
End Module
' The example displays the following output:
'       Conversion of the Int32 '16352' is not supported
'       '' converts to 1/1/0001 12:00:00 AM.
'       'monthly' is not in the proper format.
'       '05/01/1996' converts to 5/1/1996 12:00:00 AM.
'       'Tue Apr 28, 2009' converts to 4/28/2009 12:00:00 AM.
'       '06 July 2008 7:32:47 AM' converts to 7/6/2008 7:32:47 AM.
'       '17:32:47.003' converts to 5/28/2008 5:32:47 PM.

Hinweise

Damit die Konvertierung erfolgreich ist, muss der Laufzeittyp des value Parameters entweder ein DateTime - oder ein String- oder value sein null. Andernfalls löst die -Methode eine aus InvalidCastException. Wenn es sich um value eine Zeichenfolge handelt, muss sie außerdem eine gültige Darstellung eines Datums- und Uhrzeitwerts in der aktuellen Kultur enthalten, oder ein FormatException wird ausgelöst.

Der Rückgabewert ist das Ergebnis des Aufrufs der IConvertible.ToDateTime -Methode des zugrunde liegenden Typs von value.

Gilt für:

ToDateTime(Int16)

Quelle:
Convert.cs
Quelle:
Convert.cs
Quelle:
Convert.cs

Beim Aufrufen dieser Methode wird immer eine InvalidCastException ausgelöst.

public:
 static DateTime ToDateTime(short value);
public static DateTime ToDateTime (short value);
static member ToDateTime : int16 -> DateTime
Public Shared Function ToDateTime (value As Short) As DateTime

Parameter

value
Int16

Die zu konvertierende 16-Bit-Ganzzahl mit Vorzeichen.

Gibt zurück

Diese Konvertierung wird nicht unterstützt. Es wird kein Wert zurückgegeben.

Ausnahmen

Diese Konvertierung wird nicht unterstützt.

Weitere Informationen

Gilt für:

ToDateTime(Int32)

Quelle:
Convert.cs
Quelle:
Convert.cs
Quelle:
Convert.cs

Beim Aufrufen dieser Methode wird immer eine InvalidCastException ausgelöst.

public:
 static DateTime ToDateTime(int value);
public static DateTime ToDateTime (int value);
static member ToDateTime : int -> DateTime
Public Shared Function ToDateTime (value As Integer) As DateTime

Parameter

value
Int32

Die zu konvertierende 32-Bit-Ganzzahl mit Vorzeichen.

Gibt zurück

Diese Konvertierung wird nicht unterstützt. Es wird kein Wert zurückgegeben.

Ausnahmen

Diese Konvertierung wird nicht unterstützt.

Weitere Informationen

Gilt für:

ToDateTime(Int64)

Quelle:
Convert.cs
Quelle:
Convert.cs
Quelle:
Convert.cs

Beim Aufrufen dieser Methode wird immer eine InvalidCastException ausgelöst.

public:
 static DateTime ToDateTime(long value);
public static DateTime ToDateTime (long value);
static member ToDateTime : int64 -> DateTime
Public Shared Function ToDateTime (value As Long) As DateTime

Parameter

value
Int64

Die zu konvertierende 64-Bit-Ganzzahl mit Vorzeichen.

Gibt zurück

Diese Konvertierung wird nicht unterstützt. Es wird kein Wert zurückgegeben.

Ausnahmen

Diese Konvertierung wird nicht unterstützt.

Weitere Informationen

Gilt für:

ToDateTime(Double)

Quelle:
Convert.cs
Quelle:
Convert.cs
Quelle:
Convert.cs

Beim Aufrufen dieser Methode wird immer eine InvalidCastException ausgelöst.

public:
 static DateTime ToDateTime(double value);
public static DateTime ToDateTime (double value);
static member ToDateTime : double -> DateTime
Public Shared Function ToDateTime (value As Double) As DateTime

Parameter

value
Double

Der zu konvertierende Gleitkommawert mit doppelter Genauigkeit.

Gibt zurück

Diese Konvertierung wird nicht unterstützt. Es wird kein Wert zurückgegeben.

Ausnahmen

Diese Konvertierung wird nicht unterstützt.

Weitere Informationen

Gilt für:

ToDateTime(Decimal)

Quelle:
Convert.cs
Quelle:
Convert.cs
Quelle:
Convert.cs

Beim Aufrufen dieser Methode wird immer eine InvalidCastException ausgelöst.

public:
 static DateTime ToDateTime(System::Decimal value);
public static DateTime ToDateTime (decimal value);
static member ToDateTime : decimal -> DateTime
Public Shared Function ToDateTime (value As Decimal) As DateTime

Parameter

value
Decimal

Die zu konvertierende Zahl.

Gibt zurück

Diese Konvertierung wird nicht unterstützt. Es wird kein Wert zurückgegeben.

Ausnahmen

Diese Konvertierung wird nicht unterstützt.

Gilt für:

ToDateTime(DateTime)

Quelle:
Convert.cs
Quelle:
Convert.cs
Quelle:
Convert.cs

Gibt das angegebene DateTime Objekt zurück. Es wird keine wirkliche Konvertierung durchgeführt.

public:
 static DateTime ToDateTime(DateTime value);
public static DateTime ToDateTime (DateTime value);
static member ToDateTime : DateTime -> DateTime
Public Shared Function ToDateTime (value As DateTime) As DateTime

Parameter

value
DateTime

Ein Datums- und Uhrzeitwert.

Gibt zurück

value wird unverändert zurückgegeben.

Gilt für:

ToDateTime(Char)

Quelle:
Convert.cs
Quelle:
Convert.cs
Quelle:
Convert.cs

Beim Aufrufen dieser Methode wird immer eine InvalidCastException ausgelöst.

public:
 static DateTime ToDateTime(char value);
public static DateTime ToDateTime (char value);
static member ToDateTime : char -> DateTime
Public Shared Function ToDateTime (value As Char) As DateTime

Parameter

value
Char

Das zu konvertierende Unicode-Zeichen.

Gibt zurück

Diese Konvertierung wird nicht unterstützt. Es wird kein Wert zurückgegeben.

Ausnahmen

Diese Konvertierung wird nicht unterstützt.

Weitere Informationen

Gilt für:

ToDateTime(Byte)

Quelle:
Convert.cs
Quelle:
Convert.cs
Quelle:
Convert.cs

Beim Aufrufen dieser Methode wird immer eine InvalidCastException ausgelöst.

public:
 static DateTime ToDateTime(System::Byte value);
public static DateTime ToDateTime (byte value);
static member ToDateTime : byte -> DateTime
Public Shared Function ToDateTime (value As Byte) As DateTime

Parameter

value
Byte

Die zu konvertierende 8-Bit-Ganzzahl ohne Vorzeichen.

Gibt zurück

Diese Konvertierung wird nicht unterstützt. Es wird kein Wert zurückgegeben.

Ausnahmen

Diese Konvertierung wird nicht unterstützt.

Weitere Informationen

Gilt für:

ToDateTime(Boolean)

Quelle:
Convert.cs
Quelle:
Convert.cs
Quelle:
Convert.cs

Beim Aufrufen dieser Methode wird immer eine InvalidCastException ausgelöst.

public:
 static DateTime ToDateTime(bool value);
public static DateTime ToDateTime (bool value);
static member ToDateTime : bool -> DateTime
Public Shared Function ToDateTime (value As Boolean) As DateTime

Parameter

value
Boolean

Der zu konvertierende boolesche Wert.

Gibt zurück

Diese Konvertierung wird nicht unterstützt. Es wird kein Wert zurückgegeben.

Ausnahmen

Diese Konvertierung wird nicht unterstützt.

Weitere Informationen

Gilt für: