Convert.ToDateTime メソッド

定義

指定した値を DateTime 値に変換します。

オーバーロード

名前 説明
ToDateTime(Single)

このメソッドを呼び出すと、常に InvalidCastExceptionがスローされます。

ToDateTime(String)

指定した日付と時刻の文字列形式を等価の日付と時刻の値に変換します。

ToDateTime(UInt16)

このメソッドを呼び出すと、常に InvalidCastExceptionがスローされます。

ToDateTime(String, IFormatProvider)

指定したカルチャ固有の書式情報を使用して、指定した数値の文字列形式を等価の日付と時刻に変換します。

ToDateTime(UInt64)

このメソッドを呼び出すと、常に InvalidCastExceptionがスローされます。

ToDateTime(Object, IFormatProvider)

指定したカルチャ固有の書式情報を使用して、指定したオブジェクトの値を DateTime オブジェクトに変換します。

ToDateTime(SByte)

このメソッドを呼び出すと、常に InvalidCastExceptionがスローされます。

ToDateTime(UInt32)

このメソッドを呼び出すと、常に InvalidCastExceptionがスローされます。

ToDateTime(Object)

指定したオブジェクトの値を DateTime オブジェクトに変換します。

ToDateTime(Double)

このメソッドを呼び出すと、常に InvalidCastExceptionがスローされます。

ToDateTime(Int32)

このメソッドを呼び出すと、常に InvalidCastExceptionがスローされます。

ToDateTime(Int16)

このメソッドを呼び出すと、常に InvalidCastExceptionがスローされます。

ToDateTime(Int64)

このメソッドを呼び出すと、常に InvalidCastExceptionがスローされます。

ToDateTime(Decimal)

このメソッドを呼び出すと、常に InvalidCastExceptionがスローされます。

ToDateTime(DateTime)

指定した DateTime オブジェクトを返します。実際の変換は実行されません。

ToDateTime(Char)

このメソッドを呼び出すと、常に InvalidCastExceptionがスローされます。

ToDateTime(Byte)

このメソッドを呼び出すと、常に InvalidCastExceptionがスローされます。

ToDateTime(Boolean)

このメソッドを呼び出すと、常に InvalidCastExceptionがスローされます。

ToDateTime(Single)

ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs

このメソッドを呼び出すと、常に InvalidCastExceptionがスローされます。

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

パラメーター

value
Single

変換する単精度浮動小数点値。

返品

この変換はサポートされていません。 値は返されません。

例外

この変換はサポートされていません。

こちらもご覧ください

適用対象

ToDateTime(String)

ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs

指定した日付と時刻の文字列形式を等価の日付と時刻の値に変換します。

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

パラメーター

value
String

日付と時刻の文字列形式。

返品

valueの値に相当する日付と時刻、またはvalue場合は null に相当する日付と時刻。

例外

value が正しく書式設定された日付と時刻の文字列ではありません。

次の例では、 ToDateTime メソッドを使用して、日付と時刻のさまざまな文字列形式を DateTime 値に変換します。

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.

注釈

valuenullされていない場合、戻り値は、現在のカルチャ用に初期化されたDateTime.Parse オブジェクトの書式設定情報を使用してvalueに対してDateTimeFormatInfo メソッドを呼び出した結果です。 value引数には、DateTimeFormatInfoトピックで説明されている形式のいずれかで、日付と時刻の表現が含まれている必要があります。 valuenull場合、メソッドはDateTime.MinValueを返します。

このメソッドは、 value を完全に解析し、 FormatExceptionのスローを回避しようとします。 不足している月、日、年の情報が現在の日付で完了します。 valueに日付のみが含まれており、時刻がない場合、このメソッドは午前 0 時の時刻を想定します。 valueの先頭、内側、または末尾の空白文字は無視されます。

変換が失敗した場合に例外を処理しない場合は、代わりに DateTime.TryParse メソッドを呼び出すことができます。 変換が成功したか失敗したかを示す Boolean 値を返します。

こちらもご覧ください

適用対象

ToDateTime(UInt16)

ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs

重要

この API は CLS 準拠ではありません。

このメソッドを呼び出すと、常に InvalidCastExceptionがスローされます。

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

パラメーター

value
UInt16

変換する 16 ビット符号なし整数。

返品

この変換はサポートされていません。 値は返されません。

属性

例外

この変換はサポートされていません。

こちらもご覧ください

適用対象

ToDateTime(String, IFormatProvider)

ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs

指定したカルチャ固有の書式情報を使用して、指定した数値の文字列形式を等価の日付と時刻に変換します。

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

パラメーター

value
String

変換する日付と時刻を含む文字列。

provider
IFormatProvider

カルチャ固有の書式設定情報を提供するオブジェクト。

返品

valueの値に相当する日付と時刻、またはvalue場合は null に相当する日付と時刻。

例外

value が正しく書式設定された日付と時刻の文字列ではありません。

次の例では、ToDateTime オブジェクトを使用して、IFormatProvider メソッドを使用して日付値の文字列形式を変換します。

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

注釈

戻り値は、DateTime.Parse(String, IFormatProvider)value メソッドを呼び出した結果です。

providerは、IFormatProvider オブジェクトを取得するDateTimeFormatInfo インスタンスです。 DateTimeFormatInfo オブジェクトは、valueの形式に関するカルチャ固有の情報を提供します。 providernullされている場合は、現在のカルチャのDateTimeFormatInfoが使用されます。

変換が失敗した場合に例外を処理しない場合は、代わりに DateTime.TryParse メソッドを呼び出すことができます。 変換が成功したか失敗したかを示す Boolean 値を返します。

こちらもご覧ください

  • .NET

適用対象

ToDateTime(UInt64)

ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs

重要

この API は CLS 準拠ではありません。

このメソッドを呼び出すと、常に InvalidCastExceptionがスローされます。

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

パラメーター

value
UInt64

変換する 64 ビット符号なし整数。

返品

この変換はサポートされていません。 値は返されません。

属性

例外

この変換はサポートされていません。

こちらもご覧ください

適用対象

ToDateTime(Object, IFormatProvider)

ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs

指定したカルチャ固有の書式情報を使用して、指定したオブジェクトの値を DateTime オブジェクトに変換します。

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

パラメーター

value
Object

IConvertible インターフェイスを実装するオブジェクト。

provider
IFormatProvider

カルチャ固有の書式設定情報を提供するオブジェクト。

返品

valueの値に相当する日付と時刻、またはvalue場合は null に相当する日付と時刻。

例外

value が有効な日付と時刻の値ではありません。

value では、 IConvertible インターフェイスは実装されません。

-又は-

変換はサポートされていません。

次の例では、CustomProvider メソッドが呼び出されたメッセージをコンソールに出力し、名前がパラメーターとしてクラス コンストラクターに渡されたカルチャのGetFormat オブジェクトを返す、カスタム形式プロバイダー (DateTimeFormatInfo) を定義します。 これらの各 CustomProvider オブジェクトは、オブジェクト配列内の要素を日付と時刻の値に変換するために使用されます。 出力は、CustomProvider パラメーターの型がvalueの場合にのみ、String オブジェクトが変換で使用されることを示します。

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

注釈

戻り値は、基になる型のIConvertible.ToDateTimevalue メソッドを呼び出した結果です。

provider を使用すると、ユーザーは valueの内容に関するカルチャ固有の変換情報を指定できます。 たとえば、 value が日付を表す String である場合、 provider はその日付を表すために使用される表記に関するカルチャ固有の情報を提供できます。 providerは、valueのランタイム型がvalueである場合、またはStringvalueを利用するユーザー定義型の場合、IConvertible.ToDateTimeの実装がproviderの変換に関与します。 valueのランタイム型がStringされ、providernull場合は、現在のカルチャを表すCultureInfo オブジェクトが使用されます。

こちらもご覧ください

  • .NET

適用対象

ToDateTime(SByte)

ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs

重要

この API は CLS 準拠ではありません。

このメソッドを呼び出すと、常に InvalidCastExceptionがスローされます。

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

パラメーター

value
SByte

変換する 8 ビット符号付き整数。

返品

この変換はサポートされていません。 値は返されません。

属性

例外

この変換はサポートされていません。

こちらもご覧ください

適用対象

ToDateTime(UInt32)

ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs

重要

この API は CLS 準拠ではありません。

このメソッドを呼び出すと、常に InvalidCastExceptionがスローされます。

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

パラメーター

value
UInt32

変換する 32 ビット符号なし整数。

返品

この変換はサポートされていません。 値は返されません。

属性

例外

この変換はサポートされていません。

こちらもご覧ください

適用対象

ToDateTime(Object)

ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs

指定したオブジェクトの値を DateTime オブジェクトに変換します。

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

パラメーター

value
Object

IConvertible インターフェイスまたはnullを実装するオブジェクト。

返品

valueの値に相当する日付と時刻、またはvalue場合は null に相当する日付と時刻。

例外

value が有効な日付と時刻の値ではありません。

value では、 IConvertible インターフェイスは実装されません。

-又は-

変換はサポートされていません。

次の例では、さまざまなToDateTime(Object)変数を使用して Object メソッドを呼び出します。

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.

注釈

変換を成功させるには、value パラメーターのランタイム型をDateTimeまたはStringにするか、valuenullする必要があります。 それ以外の場合、メソッドは InvalidCastExceptionをスローします。 さらに、 value が文字列の場合は、現在のカルチャの日付と時刻の値の有効な表現を含む必要があります。または、 FormatException がスローされます。

戻り値は、基になる型のIConvertible.ToDateTimevalue メソッドを呼び出した結果です。

適用対象

ToDateTime(Double)

ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs

このメソッドを呼び出すと、常に InvalidCastExceptionがスローされます。

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

パラメーター

value
Double

変換する倍精度浮動小数点値。

返品

この変換はサポートされていません。 値は返されません。

例外

この変換はサポートされていません。

こちらもご覧ください

適用対象

ToDateTime(Int32)

ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs

このメソッドを呼び出すと、常に InvalidCastExceptionがスローされます。

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

パラメーター

value
Int32

変換する 32 ビット符号付き整数。

返品

この変換はサポートされていません。 値は返されません。

例外

この変換はサポートされていません。

こちらもご覧ください

適用対象

ToDateTime(Int16)

ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs

このメソッドを呼び出すと、常に InvalidCastExceptionがスローされます。

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

パラメーター

value
Int16

変換する 16 ビット符号付き整数。

返品

この変換はサポートされていません。 値は返されません。

例外

この変換はサポートされていません。

こちらもご覧ください

適用対象

ToDateTime(Int64)

ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs

このメソッドを呼び出すと、常に InvalidCastExceptionがスローされます。

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

パラメーター

value
Int64

変換する 64 ビット符号付き整数。

返品

この変換はサポートされていません。 値は返されません。

例外

この変換はサポートされていません。

こちらもご覧ください

適用対象

ToDateTime(Decimal)

ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs

このメソッドを呼び出すと、常に InvalidCastExceptionがスローされます。

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

パラメーター

value
Decimal

変換する数値。

返品

この変換はサポートされていません。 値は返されません。

例外

この変換はサポートされていません。

適用対象

ToDateTime(DateTime)

ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs

指定した DateTime オブジェクトを返します。実際の変換は実行されません。

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

パラメーター

value
DateTime

日付と時刻の値。

返品

value は変更されずに返されます。

適用対象

ToDateTime(Char)

ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs

このメソッドを呼び出すと、常に InvalidCastExceptionがスローされます。

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

パラメーター

value
Char

変換する Unicode 文字。

返品

この変換はサポートされていません。 値は返されません。

例外

この変換はサポートされていません。

こちらもご覧ください

適用対象

ToDateTime(Byte)

ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs

このメソッドを呼び出すと、常に InvalidCastExceptionがスローされます。

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

パラメーター

value
Byte

変換する 8 ビット符号なし整数。

返品

この変換はサポートされていません。 値は返されません。

例外

この変換はサポートされていません。

こちらもご覧ください

適用対象

ToDateTime(Boolean)

ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs
ソース:
Convert.cs

このメソッドを呼び出すと、常に InvalidCastExceptionがスローされます。

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

パラメーター

value
Boolean

変換するブール値。

返品

この変換はサポートされていません。 値は返されません。

例外

この変換はサポートされていません。

こちらもご覧ください

適用対象