DateTime.Parse DateTime.Parse DateTime.Parse DateTime.Parse Method

定義

日付と時刻の文字列形式を等価の DateTime に変換します。Converts the string representation of a date and time to its DateTime equivalent.

オーバーロード

Parse(String) Parse(String) Parse(String) Parse(String)

現在のスレッド カルチャの書式規則を使用して、日付と時刻の文字列形式を等価の DateTime に変換します。Converts the string representation of a date and time to its DateTime equivalent by using the conventions of the current thread culture.

Parse(String, IFormatProvider) Parse(String, IFormatProvider) Parse(String, IFormatProvider) Parse(String, IFormatProvider)

カルチャ固有の書式情報を使用して、日付と時刻の文字列形式を等価の DateTime に変換します。Converts the string representation of a date and time to its DateTime equivalent by using culture-specific format information.

Parse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles) Parse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles) Parse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles)

カルチャ固有の書式情報と書式スタイルを使用して、日付と時刻の文字列形式を含むメモリ範囲を等価の DateTime に変換します。Converts a memory span that contains string representation of a date and time to its DateTime equivalent by using culture-specific format information and a formatting style.

Parse(String, IFormatProvider, DateTimeStyles) Parse(String, IFormatProvider, DateTimeStyles) Parse(String, IFormatProvider, DateTimeStyles) Parse(String, IFormatProvider, DateTimeStyles)

カルチャ固有の書式情報と書式スタイルを使用して、日付と時刻の文字列形式を等価の DateTime に変換します。Converts the string representation of a date and time to its DateTime equivalent by using culture-specific format information and a formatting style.

この記事の「 DateTime.Parse 解説」セクションと個々DateTime.Parseのオーバーロードに関するドキュメントでは、メソッドを呼び出す多くの例が含まれています。Numerous examples that call the DateTime.Parse method are interspersed throughout the Remarks section of this article and in the documentation for the individual DateTime.Parse overloads.

注意

この記事にある C# の例の一部は、Try.NET インライン コード ランナーとプレイグラウンドで実行されます。Some C# examples in this article run in the Try.NET inline code runner and playground. [実行] ボタンを選択すると、対話型ウィンドウで例が実行されます。Select the Run button to run an example in an interactive window. コードを実行したら、コードを変更し、 [実行] をもう一度選択して変更後のコードを実行できます。Once you execute the code, you can modify it and run the modified code by selecting Run again. 変更後のコードが対話型ウィンドウで実行されるか、コンパイルできなかった場合、対話型ウィンドウにすべての C# コンパイラ エラー メッセージが表示されます。The modified code either runs in the interactive window or, if compilation fails, the interactive window displays all C# compiler error messages.

Try.NET インライン コード ランナーとプレイグラウンドのローカル タイム ゾーンは、協定世界時 (UTC) です。The local time zone of the Try.NET inline code runner and playground is Coordinated Universal Time, or UTC. これは、DateTimeDateTimeOffsetTimeZoneInfo 型とそのメンバーについて説明する例の、動作と出力に影響を与える可能性があります。This may affect the behavior and the output of examples that illustrate the DateTime, DateTimeOffset, and TimeZoneInfo types and their members.

また、サンプルDateTime.Parseの完全なセットをダウンロードすることもできます。これはのC# .net core 2.0 プロジェクトに含まれており、 Visual Basic 用の .net core 2.0 プロジェクトには、 dotnet/samples GitHub リポジトリからダウンロードできます。You can also download a complete set of DateTime.Parse examples, which are included in a .NET Core 2.0 project for C# and a .NET Core 2.0 project for Visual Basic, from the dotnet/samples GitHub repository.

注釈

このセクションの内容:In this section:

どの方法を呼び出すか。Which method do I call?

終了To CallCall
現在のカルチャの規則を使用して、日付と時刻の文字列を解析します。Parse a date and time string by using the conventions of the current culture. Parse(String) オーバーロードParse(String) overload
特定のカルチャの規則を使用して、日付と時刻の文字列を解析します。Parse a date and time string by using the conventions of a specific culture. Parse(String, IFormatProvider)オーバーロード (「解析とカルチャ規則」を参照)Parse(String, IFormatProvider) overload (see Parsing and Cultural Conventions)
特殊なスタイル要素 (空白文字、空白文字など) を使用して、日付と時刻の文字列を解析します。Parse a date and time string with special style elements (such as white space or no white space). Parse(String, IFormatProvider, DateTimeStyles) オーバーロードParse(String, IFormatProvider, DateTimeStyles) overload
特定の形式にする必要がある日付と時刻の文字列を解析します。Parse a date and time string that must be in a particular format. DateTime.ParseExact または DateTime.TryParseExactDateTime.ParseExact or DateTime.TryParseExact
日付と時刻の文字列を解析し、UTC または現地時刻への変換を実行します。Parse a date and time string and perform a conversion to UTC or local time. Parse(String, IFormatProvider, DateTimeStyles) オーバーロードParse(String, IFormatProvider, DateTimeStyles) overload
例外を処理せずに、日付と時刻の文字列を解析します。Parse a date and time string without handling exceptions. DateTime.TryParse メソッドDateTime.TryParse method
書式設定操作によって作成された日付と時刻の値を復元 (ラウンドトリップ) します。Restore (round-trip) a date and time value created by a formatting operation. "O" または "r" の標準書式指定文字列をToString(String)メソッドに渡し、をParse(String, IFormatProvider, DateTimeStyles)使用してオーバーロードを呼び出します。DateTimeStyles.RoundtripKindPass the "o" or "r" standard format string to the ToString(String) method, and call the Parse(String, IFormatProvider, DateTimeStyles) overload with DateTimeStyles.RoundtripKind
コンピューター (および場合によってはカルチャ) の境界を越えて、固定形式の日付と時刻の文字列を解析します。Parse a date and time string in a fixed format across machine (and possibly cultural) boundaries. DateTime.ParseExactまたDateTime.TryParseExactはメソッドDateTime.ParseExact or DateTime.TryParseExact method

解析する文字列。The string to parse

メソッドParseは、日付と時刻の値の文字列形式DateTimeを、それと等価のに変換しようとします。The Parse method tries to convert the string representation of a date and time value to its DateTime equivalent. このメソッドは、例外をFormatExceptionスローせずに入力文字列を完全に解析しようとします。It tries to parse the input string completely without throwing a FormatException exception.

重要

認識されParseない文字列形式のために解析操作が失敗した場合、メソッドはをFormatExceptionスロー false TryParseしますが、メソッドはを返します。If the parsing operation fails because of an unrecognized string format, the Parse method throws a FormatException, whereas the TryParse method returns false. 例外処理はコストがかかる場合があるためParse 、入力ソースが信頼されているために解析操作が成功すると予想される場合は、を使用する必要があります。Because exception handling can be expensive, you should use Parse when the parsing operation is expected to succeed because the input source is trusted. TryParseは、解析エラーが発生する可能性がある場合 (特に入力ソースが信頼されていない場合)、または正しく解析されない文字列の代わりに適切な既定値がある場合に適しています。TryParse is preferable when parsing failures are likely, particularly because an input source is not trusted, or you have reasonable default values to substitute for strings that do not parse successfully.

解析する文字列は、次のいずれかの形式になります。The string to be parsed can take any of the following forms:

  • 日付と時刻のコンポーネントを含む文字列。A string with a date and a time component.

  • 日付と時刻のコンポーネントを含まない文字列。A string with a date but no time component. 時刻部分が存在しない場合、メソッドは午前0時12:00 を想定します。If the time component is absent, the method assumes 12:00 midnight. 日付部分に2桁の年がある場合、現在のカルチャの現在Calendar.TwoDigitYearMaxの暦または指定したカルチャの現在の暦のに基づいて年に変換されます (null provider以外の引数を持つオーバーロードを使用する場合)。If the date component has a two-digit year, it is converted to a year based on the Calendar.TwoDigitYearMax of the current culture's current calendar or the specified culture's current calendar (if you use an overload with a non-null provider argument).

  • 月と年だけを含み、日の部分を含まない日付部分を含む文字列。A string with a date component that includes only the month and the year but no day component. このメソッドは、月の最初の日を想定しています。The method assumes the first day of the month.

  • 月と日だけを含み、年を含まない、日付部分を含む文字列。A string with a date component that includes only the month and the day but no year component. このメソッドは、現在の年を想定しています。The method assumes the current year.

  • 時刻を指定し、日付部分を含まない文字列。A string with a time but no date component. Parse(String, IFormatProvider, DateTimeStyles)オーバーロードを呼び出してstyles引数にを含めるDateTimeStyles.NoCurrentDateDefault場合を除き、メソッドは現在の日付を想定します。この場合、メソッドは0001年1月1日の日付を想定します。The method assumes the current date unless you call the Parse(String, IFormatProvider, DateTimeStyles) overload and include DateTimeStyles.NoCurrentDateDefault in the styles argument, in which case the method assumes a date of January 1, 0001.

  • 時刻部分と AM/PM 指定子のみを含み、日付部分を含まない、時刻部分を含む文字列。A string with a time component that includes only the hour and an AM/PM designator, with no date component. このメソッドは、現在の日付と時刻を指定します。時間はありません。秒は使用できません。The method assumes the current date and a time with no minutes and no seconds. この動作を変更するには、 Parse(String, IFormatProvider, DateTimeStyles)オーバーロードを呼び出しDateTimeStyles.NoCurrentDateDefaultstyles引数にを含めます。この場合、メソッドは、0001年1月1日の日付を想定します。You can change this behavior by calling the Parse(String, IFormatProvider, DateTimeStyles) overload and include DateTimeStyles.NoCurrentDateDefault in the styles argument, in which case the method assumes a date of January 1, 0001.

  • タイムゾーン情報を含み、ISO 8601 に準拠している文字列。A string that includes time zone information and conforms to ISO 8601. 次の例では、最初の文字列は世界協定時刻 (UTC) を指定し、2番目の文字列は UTC より7時間前のタイムゾーンの時刻を指定します。In the following examples, the first string designates Coordinated Universal Time (UTC), and the second designates the time in a time zone that's seven hours earlier than UTC:

    "2008-11-01T19:35:00.0000000Z""2008-11-01T19:35:00.0000000Z"
    "2008-11-01T19:35:00.0000000-07:00""2008-11-01T19:35:00.0000000-07:00"

  • GMT 指定子を含み、RFC 1123 時刻形式に準拠している文字列。例えば:A string that includes the GMT designator and conforms to the RFC 1123 time format; for example:

    "Sat, 01 11 月 2008 19:35:00 GMT""Sat, 01 Nov 2008 19:35:00 GMT"

  • タイムゾーンオフセット情報と共に日付と時刻を含む文字列。例えば:A string that includes the date and time along with time zone offset information; for example:

    "03/01/2009 05:42:00 -5:00""03/01/2009 05:42:00 -5:00"

次の例では、現在のカルチャの書式指定規則 (この例では en-us カルチャ) を使用して、これらの各形式の文字列を解析します。The following example parses strings in each of these formats by using the formatting conventions of the current culture, which in this case is the en-US culture:

using System;

public class Example
{
   public static void Main()
   {
      (string dateAsString, string description)[]  dateInfo = { ("08/18/2018 07:22:16", "String with a date and time component"),                             
                                                                ("08/18/2018", "String with a date component only"),
                                                                ("8/2018", "String with a month and year component only"),
                                                                ("8/18", "String with a month and day component only"),
                                                                ("07:22:16", "String with a time component only"),
                                                                ("7 PM", "String with an hour and AM/PM designator only"),
                                                                ("2018-08-18T07:22:16.0000000Z", "UTC string that conforms to ISO 8601"),   
                                                                ("2018-08-18T07:22:16.0000000-07:00", "Non-UTC string that conforms to ISO 8601"),
                                                                ("Sat, 18 Aug 2018 07:22:16 GMT", "String that conforms to RFC 1123"),
                                                                ("08/18/2018 07:22:16 -5:00", "String with date, time, and time zone information" ) };
   
      Console.WriteLine($"Today is {DateTime.Now:d}\n");
      
      foreach (var item in dateInfo) {
         Console.WriteLine($"{item.description + ":",-52} '{item.dateAsString}' --> {DateTime.Parse(item.dateAsString)}");        
      }
   }
}
// The example displays output like the following:
//   Today is 2/22/2018
//   
//   String with a date and time component:               '08/18/2018 07:22:16' --> 8/18/2018 7:22:16 AM
//   String with a date component only:                   '08/18/2018' --> 8/18/2018 12:00:00 AM
//   String with a month and year component only:         '8/2018' --> 8/1/2018 12:00:00 AM
//   String with a month and day component only:          '8/18' --> 8/18/2018 12:00:00 AM
//   String with a time component only:                   '07:22:16' --> 2/22/2018 7:22:16 AM
//   String with an hour and AM/PM designator only:       '7 PM' --> 2/22/2018 7:00:00 PM
//   UTC string that conforms to ISO 8601:                '2018-08-18T07:22:16.0000000Z' --> 8/18/2018 12:22:16 AM
//   Non-UTC string that conforms to ISO 8601:            '2018-08-18T07:22:16.0000000-07:00' --> 8/18/2018 7:22:16 AM
//   String that conforms to RFC 1123:                    'Sat, 18 Aug 2018 07:22:16 GMT' --> 8/18/2018 12:22:16 AM
//   String with date, time, and time zone information:   '08/18/2018 07:22:16 -5:00' --> 8/18/2018 5:22:16 AM


Public Module Strings
   Public Sub Main()
      Dim dateInfo() As (dateAsString As String, description As String) = 
                     { ("08/18/2018 07:22:16", "String with a date and time component"),
                       ("08/18/2018", "String with a date component only"),
                       ("8/2018", "String with a month and year component only"),
                       ("8/18", "String with a month and day component only"),
                       ("07:22:16", "String with a time component only"),
                       ("7 PM", "String with an hour and AM/PM designator only"),
                       ("2018-08-18T07:22:16.0000000Z", "UTC string that conforms to ISO 8601"),   
                       ("2018-08-18T07:22:16.0000000-07:00", "Non-UTC string that conforms to ISO 8601"),
                       ("Sat, 18 Aug 2018 07:22:16 GMT", "String that conforms to RFC 1123"),
                       ("08/18/2018 07:22:16 -5:00", "String with date, time, and time zone information" ) }
   
      Console.WriteLine($"Today is {Date.Now:d}{vbCrLf}")
      
      For Each item in dateInfo
         Console.WriteLine($"{item.description + ":",-52} '{item.dateAsString}' --> {DateTime.Parse(item.dateAsString)}")        
      Next
   End Sub
End Module
' The example displays output like the following:
'   Today is 2/22/2018
'   
'   String with a date and time component:               '08/18/2018 07:22:16' --> 8/18/2018 7:22:16 AM
'   String with a date component only:                   '08/18/2018' --> 8/18/2018 12:00:00 AM
'   String with a month and year component only:         '8/2018' --> 8/1/2018 12:00:00 AM
'   String with a month and day component only:          '8/18' --> 8/18/2018 12:00:00 AM
'   String with a time component only:                   '07:22:16' --> 2/22/2018 7:22:16 AM
'   String with an hour and AM/PM designator only:       '7 PM' --> 2/22/2018 7:00:00 PM
'   UTC string that conforms to ISO 8601:                '2018-08-18T07:22:16.0000000Z' --> 8/18/2018 12:22:16 AM
'   Non-UTC string that conforms to ISO 8601:            '2018-08-18T07:22:16.0000000-07:00' --> 8/18/2018 7:22:16 AM
'   String that conforms to RFC 1123:                    'Sat, 18 Aug 2018 07:22:16 GMT' --> 8/18/2018 12:22:16 AM
'   String with date, time, and time zone information:   '08/18/2018 07:22:16 -5:00' --> 8/18/2018 5:22:16 AM

入力文字列が、解析メソッドによって使用される暦における閏年の閏年を表している場合 (「解析とカルチャ規則」を参照)、メソッドはParse文字列を正常に解析します。If the input string represents a leap day in a leap year in the calendar used by the parsing method (see Parsing and cultural conventions), the Parse method parses the string successfully. 入力文字列がうるう年以外の閏日を表している場合、メソッドはをFormatExceptionスローします。If the input string represents a leap day in a non-leap year, the method throws a FormatException.

メソッドはParse 、現在のカルチャまたは指定されたカルチャの書式設定規則を使用して、日付と時刻の文字列形式を解析しようとするため、異なるカルチャで文字列を解析しようとすると失敗することがあります。Because the Parse method tries to parse the string representation of a date and time by using the formatting rules of the current or a specified culture, trying to parse a string across different cultures can fail. 異なるロケールで特定の日付と時刻の書式を解析するには、 DateTime.ParseExactメソッドのオーバーロードのいずれかを使用して、書式指定子を指定します。To parse a specific date and time format across different locales, use one of the overloads of the DateTime.ParseExact method and provide a format specifier.

解析とカルチャ規則Parsing and cultural conventions

Parseメソッドのすべてのオーバーロードは、(次の表のでs表される) 解析対象の文字列が ISO 8601 パターンに準拠している場合を除き、カルチャに依存します。All overloads of the Parse method are culture-sensitive unless the string to be parsed (which is represented by s in the following table) conforms to the ISO 8601 pattern. 解析操作では、次のようにDateTimeFormatInfo派生したオブジェクトの書式情報を使用します。The parsing operation uses the formatting information in a DateTimeFormatInfo object that is derived as follows:

重要

和暦の時代 (年号) は天皇の代に基づいているため、変更されることが予想されます。Eras in the Japanese calendars are based on the emperor's reign and are therefore expected to change. たとえば、JapaneseCalendarJapaneseLunisolarCalendar において、2019 年 5 月 1 日から令和時代が始まることになりました。For example, May 1, 2019 marked the beginning of the Reiwa era in the JapaneseCalendar and JapaneseLunisolarCalendar. このような時代 (年号) の変更は、これらのカレンダーを使用するすべてのアプリケーションに影響します。Such a change of era affects all applications that use these calendars. 詳細については「.NET での日本語のカレンダーの新しい時代」をご覧いただき、アプリケーションが影響を受けるかどうかを判断します。See Handling a new era in the Japanese calendar in .NET for more information and to determine whether your applications are affected. 日本語の時代の変更のためのアプリケーションの準備」をご覧いただき、時代の変更に対する状況を確認するために Windows システムでアプリケーションをテストします。See Prepare your application for the Japanese era change for information on testing your applications on Windows systems to ensure their readiness for the era change. 複数の時代 (年号) を含むカレンダーをサポートしている .NET の機能や、複数の時代 (年号) をサポートしているカレンダーを操作する際のベスト プラクティスについては、「Working with eras (時代 (年号) の操作)」をご覧ください。See Working with eras for features in .NET that support calendars with multiple eras and for best practices when working with calendars that support multiple eras.

を呼び出す場合If you call providerAnd provider is 書式設定情報の派生元Formatting information is derived from
Parse(String) - 現在のスレッドカルチャ (DateTimeFormatInfo.CurrentInfoプロパティ)The current thread culture (DateTimeFormatInfo.CurrentInfo property)
Parse(String, IFormatProvider) または Parse(String, IFormatProvider, DateTimeStyles)Parse(String, IFormatProvider) or Parse(String, IFormatProvider, DateTimeStyles) DateTimeFormatInfoオブジェクトa DateTimeFormatInfo object 指定さDateTimeFormatInfoれたオブジェクトThe specified DateTimeFormatInfo object
Parse(String, IFormatProvider) または Parse(String, IFormatProvider, DateTimeStyles)Parse(String, IFormatProvider) or Parse(String, IFormatProvider, DateTimeStyles) null 現在のスレッドカルチャ (DateTimeFormatInfo.CurrentInfoプロパティ)The current thread culture (DateTimeFormatInfo.CurrentInfo property)
Parse(String, IFormatProvider) または Parse(String, IFormatProvider, DateTimeStyles)Parse(String, IFormatProvider) or Parse(String, IFormatProvider, DateTimeStyles) CultureInfoオブジェクトa CultureInfo object CultureInfo.DateTimeFormat プロパティThe CultureInfo.DateTimeFormat property
Parse(String, IFormatProvider) または Parse(String, IFormatProvider, DateTimeStyles)Parse(String, IFormatProvider) or Parse(String, IFormatProvider, DateTimeStyles) カスタムIFormatProvider実装Custom IFormatProvider implementation IFormatProvider.GetFormat メソッドThe IFormatProvider.GetFormat method

書式設定情報がDateTimeFormatInfoオブジェクトから派生する場合、プロパティは解析操作で使用されるカレンダーを定義しDateTimeFormatInfo.Calendarます。When formatting information is derived from a DateTimeFormatInfo object, the DateTimeFormatInfo.Calendar property defines the calendar used in the parsing operation.

標準カルチャとは異なる設定でカスタマイズされたDateTimeFormatInfoオブジェクトを使用して日付と時刻の文字列を解析する場合は、 ParseExact Parseメソッドの代わりにメソッドを使用して、正常に変換できる可能性を向上させます。If you parse a date and time string by using a DateTimeFormatInfo object with customized settings that are different from those of a standard culture, use the ParseExact method instead of the Parse method to improve the chances for a successful conversion. 非標準の日付と時刻の文字列は複雑で解析が困難な場合があります。A non-standard date and time string can be complicated and difficult to parse. メソッドParseは、いくつかの暗黙的な解析パターンを使用して文字列を解析しようとしますが、これらはすべて失敗する可能性があります。The Parse method tries to parse a string with several implicit parse patterns, all of which might fail. これに対してParseExact 、メソッドでは、成功する可能性がある1つ以上の正確な解析パターンを明示的に指定する必要があります。In contrast, the ParseExact method requires you to explicitly designate one or more exact parse patterns that are likely to succeed. 詳細については、「」 DateTimeFormatInfoトピックの「DateTimeFormatInfo and 動的データ」セクションを参照してください。For more information, see the "DateTimeFormatInfo and Dynamic Data" section in the DateTimeFormatInfo topic.

重要

特定のカルチャの書式指定規則は動的であり、変更される可能性があることに注意してください。Note that the formatting conventions for a particular culture are dynamic and can be subject to change. これは、次のいずれかが発生した場合に、既定の (現在の) カルチャのIFormatProvider書式指定規則に依存する、またはインバリアントカルチャ以外のカルチャを表すオブジェクトを指定する解析操作が予期せず失敗することを意味します。This means that parsing operations that depend on the formatting conventions of the default (current) culture or that specify an IFormatProvider object that represents a culture other than the invariant culture can unexpectedly fail if any of the following occurs:

  • カルチャ固有のデータは、.NET Framework のメジャーバージョンまたはマイナーバージョン間で変更されるか、.NET Framework の既存のバージョンに対する更新の結果として変更されます。The culture-specific data has changed between major or minor versions of the .NET Framework or as the result of an update to the existing version of the .NET Framework.
  • カルチャ固有のデータにはユーザー設定が反映されますが、これはマシン間またはセッション間で異なる場合があります。The culture-specific data reflects user preferences, which can vary from machine to machine or session to session.
  • カルチャ固有のデータは、標準カルチャまたはカスタムカルチャの設定をオーバーライドする置換カルチャを表します。The culture-specific data represents a replacement culture that overrides the settings of a standard culture or a custom culture.

カルチャデータの変更に関連付けられたデータと時刻文字列の解析に問題が発生しないようにするには、インバリアントカルチャを使用して日付とParseExact時刻TryParseExactの文字列を解析するか、メソッドまたはメソッドを呼び出して正確な形式を指定します。解析する文字列の。To prevent the difficulties in parsing data and time strings that are associated with changes in cultural data, you can parse date and time strings by using the invariant culture, or you can call the ParseExact or TryParseExact method and specify the exact format of the string to be parsed. 日付と時刻のデータをシリアル化および逆シリアル化する場合は、インバリアントカルチャの書式指定規則を使用するか、バイナリ形式DateTimeで値をシリアル化および逆シリアル化することができます。If you are serializing and deserializing date and time data, you can either use the formatting conventions of the invariant culture, or you can serialize and deserialize the DateTime value in a binary format.

詳細については、「」トピックの「動的カルチャCultureInfoデータ」セクションと「DateTime 値の保持」セクションDateTimeを参照してください。For more information see the "Dynamic culture data" section in the CultureInfo topic and the "Persisting DateTime values" section in the DateTime topic.

解析とスタイル要素Parsing and style elements

すべてParseのオーバーロードは、入力文字列 (次の表のでs表されます) の先頭、内部、または末尾の空白文字を無視します。All Parse overloads ignore leading, inner, or trailing white-space characters in the input string (which is represented by s in the following table). 日付と時刻は、先頭と末尾の番号記号 ("#"、U + 0023) のペアで囲むことができ、1つ以上の NULL 文字 (U + 0000) で trailed できます。The date and time can be bracketed with a pair of leading and trailing NUMBER SIGN characters ("#", U+0023), and can be trailed with one or more NULL characters (U+0000).

また、 Parse(String, IFormatProvider, DateTimeStyles)オーバーロードには、 DateTimeStyles列挙styles体の1つ以上のメンバーで構成されるパラメーターがあります。In addition, the Parse(String, IFormatProvider, DateTimeStyles) overload has a styles parameter that consists of one or more members of the DateTimeStyles enumeration. このパラメーターは、 sをどのように解釈するか、および解析s操作を日付と時刻に変換する方法を定義します。This parameter defines how s should be interpreted and how the parse operation should convert s to a date and time. 次の表では、解析操作DateTimeStylesにおける各メンバーの効果について説明します。The following table describes the effect of each DateTimeStyles member on the parse operation.

DateTimeStyles メンバーDateTimeStyles member 変換に対する影響Effect on conversion
AdjustToUniversal s解析し、必要に応じて、次のように UTC に変換します。Parses s and, if necessary, converts it to UTC, as follows:

AssumeLocal styles s DateTime ToUniversalTime -にタイムゾーンオフセットが含まれている場合、またはにタイムゾーン情報が含まれておらず、フラグが含まれている場合、メソッドは文字列を解析し、を呼び出して、返された値をに変換します。 sUTC。 KindプロパティをにDateTimeKind.Utc設定します。- If s includes a time zone offset, or if s contains no time zone information but styles includes the AssumeLocal flag, the method parses the string, calls ToUniversalTime to convert the returned DateTime value to UTC, and sets the Kind property to DateTimeKind.Utc.
AssumeUniversal s styles -が UTC を表すことをDateTime示している場合、またはにタイムゾーン情報が含まれておらず、フラグが含まれている場合、メソッドは文字列を解析し、返されたにタイムゾーン変換を実行しません。 s値を指定し、 KindプロパティをDateTimeKind.Utcに設定します。- If s indicates that it represents UTC, or if s does not contain time zone information but styles includes the AssumeUniversal flag, the method parses the string, performs no time zone conversion on the returned DateTime value, and sets the Kind property to DateTimeKind.Utc.
-その他のすべての場合、フラグは無効です。- In all other cases, the flag has no effect.
AllowInnerWhite この値は無視されます。This value is ignored. 内部の空白文字は、常にの日付と時刻のs要素で許可されます。Inner white space is always permitted in the date and time elements of s.
AllowLeadingWhite この値は無視されます。This value is ignored. 先頭の空白文字は、常にの日付と時刻のs要素で許可されます。Leading white space is always permitted in the date and time elements of s.
AllowTrailingWhite この値は無視されます。This value is ignored. の日付と時刻の要素では、末尾のs空白文字が常に許可されます。Trailing white space is always permitted in the date and time elements of s.
AllowWhiteSpaces に、 s先頭、内部、および末尾の空白を含めることができることを指定します。Specifies that s may contain leading, inner, and trailing white spaces. これが既定の動作です。This is the default behavior. DateTimeStyles などNone、より制限の厳しい列挙値を指定することによってオーバーライドすることはできません。It cannot be overridden by supplying a more restrictive DateTimeStyles enumeration value such as None.
AssumeLocal にタイムゾーンs情報がない場合に、現地時刻と見なされるように指定します。Specifies that if s lacks any time zone information, local time is assumed. フラグが指定されていKindない限り、戻りDateTime値のプロパティはDateTimeKind.Localに設定されます。 AdjustToUniversalUnless the AdjustToUniversal flag is present, the Kind property of the returned DateTime value is set to DateTimeKind.Local.
AssumeUniversal にタイムゾーンs情報がない場合、UTC が想定されることを指定します。Specifies that if s lacks any time zone information, UTC is assumed. フラグが存在しない場合、メソッドは、返さDateTimeれた値を UTC から現地時刻にKind変換しDateTimeKind.Local、そのプロパティをに設定します。 AdjustToUniversalUnless the AdjustToUniversal flag is present, the method converts the returned DateTime value from UTC to local time and sets its Kind property to DateTimeKind.Local.
None 有効ですが、この値は無視されます。Although valid, this value is ignored.
RoundtripKind タイムゾーン情報を含む文字列の場合、は、そのDateTime KindプロパティがにDateTimeKind.Local設定された日付と時刻の文字列を、現地時刻を表す値に変換しないように試みます。For strings that contain time zone information, tries to prevent the conversion of a date and time string to a DateTime value that represents a local time with its Kind property set to DateTimeKind.Local. 通常、このような文字列は、 DateTime.ToString(String)メソッドを呼び出し、"o"、"r"、または "u" 標準書式指定子を使用することによって作成されます。Typically, such a string is created by calling the DateTime.ToString(String) method and by using the "o", "r", or "u" standard format specifier.

戻り値と DateTime. KindThe return value and DateTime.Kind

オーバーロードDateTime.Parseは、タイムDateTimeゾーン情報Kindを含むプロパティを持つ値を返します。The DateTime.Parse overloads return a DateTime value whose Kind property includes time zone information. 時刻が次のように指定されている可能性があります。It can indicate that the time is:

一般に、 Parseメソッドは、 DateTime KindプロパティがでDateTimeKind.Unspecifiedあるオブジェクトを返します。Generally, the Parse method returns a DateTime object whose Kind property is DateTimeKind.Unspecified. ただし、メソッドParseは、パラメーター sstylesパラメーターの値に応じて、タイムゾーンKindの変換を実行し、プロパティの値を別の値に設定することもできます。However, the Parse method may also perform time zone conversion and set the value of the Kind property differently, depending on the values of the s and styles parameters:

IfIf タイムゾーンの変換Time zone conversion Kind プロパティKind property
sタイムゾーン情報を格納します。s contains time zone information. 日付と時刻は、ローカルタイムゾーンの時刻に変換されます。The date and time is converted to the time in the local time zone. DateTimeKind.Local
s``stylesAdjustToUniversalはタイムゾーン情報が含まれ、にはフラグが含まれています。s contains time zone information, and styles includes the AdjustToUniversal flag. 日付と時刻は世界協定時刻 (UTC) に変換されます。The date and time is converted to Coordinated Universal Time (UTC). DateTimeKind.Utc
sには、Z または GMT のタイムゾーンstyles指定子RoundtripKindが含まれ、フラグが含まれています。s contains the Z or GMT time zone designator, and styles includes the RoundtripKind flag. 日付と時刻は UTC として解釈されます。The date and time are interpreted as UTC. DateTimeKind.Utc

次の例では、タイムゾーン情報を含む日付文字列をローカルタイムゾーンの時刻に変換します。The following example converts date strings that contain time zone information to the time in the local time zone:

using System;

public class Example
{
   public static void Main()
   {
      string[] dateStrings = {"2008-05-01T07:34:42-5:00", 
                              "2008-05-01 7:34:42Z", 
                              "Thu, 01 May 2008 07:34:42 GMT"};
      foreach (string dateString in dateStrings)
      {
         DateTime convertedDate = DateTime.Parse(dateString);
         Console.WriteLine($"Converted {dateString} to {convertedDate.Kind} time {convertedDate}");
      }                              
   }
}
// These calls to the DateTime.Parse method display the following output:
//  Converted 2008-05-01T07:34:42-5:00 to Local time 5/1/2008 5:34:42 AM
//  Converted 2008-05-01 7:34:42Z to Local time 5/1/2008 12:34:42 AM
//  Converted Thu, 01 May 2008 07:34:42 GMT to Local time 5/1/2008 12:34:42 AM                                             
Module Example
   Public Sub Main()
      Dim dateStrings() As String = {"2008-05-01T07:34:42-5:00", 
                                     "2008-05-01 7:34:42Z", 
                                     "Thu, 01 May 2008 07:34:42 GMT"}
      
      For Each dateStr In dateStrings
         Dim convertedDate As Date = Date.Parse(dateStr)
         Console.WriteLine($"Converted {dateStr} to {convertedDate.Kind} time {convertedDate}")
      Next 
   End Sub
End Module
' These calls to the DateTime.Parse method display the following output:
'   Converted 2008-05-01T07:34:42-5:00 to Local time 5/1/2008 5:34:42 AM
'   Converted 2008-05-01 7:34:42Z to Local time 5/1/2008 12:34:42 AM
'   Converted Thu, 01 May 2008 07:34:42 GMT to Local time 5/1/2008 12:34:42 AM                                             

フラグを使用して、書式設定および解析操作中Kindに、日付と時刻のプロパティの値を保持することもできます。 DateTimeStyles.RoundtripKindYou can also preserve the value of a date and time's Kind property during a formatting and parsing operation by using the DateTimeStyles.RoundtripKind flag. 次の例は、" RoundtripKind o"、"r" DateTime 、または "u" 書式指定子を使用して、文字列に変換される値に対するフラグの影響を示しています。The following example illustrates how the RoundtripKind flag affects the parsing operation on DateTime values that are converted to strings by using the "o", "r", or "u" format specifier.

   string[] formattedDates = { "2008-09-15T09:30:41.7752486-07:00", 
                               "2008-09-15T09:30:41.7752486Z",  
                               "2008-09-15T09:30:41.7752486",  
                               "2008-09-15T09:30:41.7752486-04:00", 
                               "Mon, 15 Sep 2008 09:30:41 GMT" };
   foreach (string formattedDate in formattedDates)
   {
      Console.WriteLine(formattedDate);
      DateTime roundtripDate = DateTime.Parse(formattedDate, null, 
                                              DateTimeStyles.RoundtripKind);                        
      Console.WriteLine($"   With RoundtripKind flag: {roundtripDate} {roundtripDate.Kind} time.");
   
      DateTime noRoundtripDate = DateTime.Parse(formattedDate, null, 
                                                DateTimeStyles.None);
      Console.WriteLine($"   Without RoundtripKind flag: {noRoundtripDate} {noRoundtripDate.Kind} time.");
   }         
// The example displays the following output:
//       2008-09-15T09:30:41.7752486-07:00
//          With RoundtripKind flag: 9/15/2008 9:30:41 AM Local time.
//          Without RoundtripKind flag: 9/15/2008 9:30:41 AM Local time.
//       2008-09-15T09:30:41.7752486Z
//          With RoundtripKind flag: 9/15/2008 9:30:41 AM Utc time.
//          Without RoundtripKind flag: 9/15/2008 2:30:41 AM Local time.
//       2008-09-15T09:30:41.7752486
//          With RoundtripKind flag: 9/15/2008 9:30:41 AM Unspecified time.
//          Without RoundtripKind flag: 9/15/2008 9:30:41 AM Unspecified time.
//       2008-09-15T09:30:41.7752486-04:00
//          With RoundtripKind flag: 9/15/2008 6:30:41 AM Local time.
//          Without RoundtripKind flag: 9/15/2008 6:30:41 AM Local time.
//       Mon, 15 Sep 2008 09:30:41 GMT
//          With RoundtripKind flag: 9/15/2008 9:30:41 AM Utc time.
//          Without RoundtripKind flag: 9/15/2008 2:30:41 AM Local time.      
Dim formattedDates() = { "2008-09-15T09:30:41.7752486-07:00", 
                           "2008-09-15T09:30:41.7752486Z",  
                           "2008-09-15T09:30:41.7752486",  
                           "2008-09-15T09:30:41.7752486-04:00", 
                           "Mon, 15 Sep 2008 09:30:41 GMT" }
For Each formattedDate In formattedDates
   Console.WriteLine(formattedDate)
   Dim roundtripDate = DateTime.Parse(formattedDate, Nothing,  
                                      DateTimeStyles.RoundtripKind)                        
   Console.WriteLine($"   With RoundtripKind flag: {roundtripDate} {roundtripDate.Kind} time.")                                          
   Dim noRoundtripDate = DateTime.Parse(formattedDate, Nothing,                                                                                                  DateTimeStyles.None)
   Console.WriteLine($"   Without RoundtripKind flag: {noRoundtripDate} {noRoundtripDate.Kind} time.")
Next         
' The example displays the following output:
'       2008-09-15T09:30:41.7752486-07:00
'          With RoundtripKind flag: 9/15/2008 9:30:41 AM Local time.
'          Without RoundtripKind flag: 9/15/2008 9:30:41 AM Local time.
'       2008-09-15T09:30:41.7752486Z
'          With RoundtripKind flag: 9/15/2008 9:30:41 AM Utc time.
'          Without RoundtripKind flag: 9/15/2008 2:30:41 AM Local time.
'       2008-09-15T09:30:41.7752486
'          With RoundtripKind flag: 9/15/2008 9:30:41 AM Unspecified time.
'          Without RoundtripKind flag: 9/15/2008 9:30:41 AM Unspecified time.
'       2008-09-15T09:30:41.7752486-04:00
'          With RoundtripKind flag: 9/15/2008 6:30:41 AM Local time.
'          Without RoundtripKind flag: 9/15/2008 6:30:41 AM Local time.
'       Mon, 15 Sep 2008 09:30:41 GMT
'          With RoundtripKind flag: 9/15/2008 9:30:41 AM Utc time.
'          Without RoundtripKind flag: 9/15/2008 2:30:41 AM Local time.      

Parse(String) Parse(String) Parse(String) Parse(String)

現在のスレッド カルチャの書式規則を使用して、日付と時刻の文字列形式を等価の DateTime に変換します。Converts the string representation of a date and time to its DateTime equivalent by using the conventions of the current thread culture.

public:
 static DateTime Parse(System::String ^ s);
public static DateTime Parse (string s);
static member Parse : string -> DateTime
Public Shared Function Parse (s As String) As DateTime

パラメーター

s
String String String String

変換する日時を含む文字列。A string that contains a date and time to convert. 詳細については、「解析する文字列」をご覧ください。See The string to parse for more information.

戻り値

s に含まれる日時と等価のオブジェクト。An object that is equivalent to the date and time contained in s.

例外

s に日付と時刻の有効な文字列形式が含まれていません。s does not contain a valid string representation of a date and time.

注釈

sタイムゾーン情報が含まれている場合、このKindメソッドはDateTimeKind.Local 、プロパティがであるDateTime値をs返し、の日付と時刻を現地時刻に変換します。If s contains time zone information, this method returns a DateTime value whose Kind property is DateTimeKind.Local and converts the date and time in s to local time. それ以外の場合、タイムゾーンの変換は実行DateTimeされKindず、 DateTimeKind.Unspecifiedプロパティがである値が返されます。Otherwise, it performs no time zone conversion and returns a DateTime value whose Kind property is DateTimeKind.Unspecified.

このオーバーロードは、現在sのカルチャの書式指定規則を使用して解析を試みます。This overload attempts to parse s by using the formatting conventions of the current culture. 現在のカルチャは、 CurrentCultureプロパティによって示されます。The current culture is indicated by the CurrentCulture property. 特定のカルチャの書式指定規則を使用して文字列を解析するParse(String, IFormatProvider)Parse(String, IFormatProvider, DateTimeStyles)は、またはのオーバーロードを呼び出します。To parse a string using the formatting conventions of a specific culture, call the Parse(String, IFormatProvider) or the Parse(String, IFormatProvider, DateTimeStyles) overloads.

このオーバーロードは、style sを使用DateTimeStyles.AllowWhiteSpacesして解析を試みます。This overload attempts to parse s by using DateTimeStyles.AllowWhiteSpaces style.

Example

次の例では、複数の日付と時刻の値の文字列形式を解析します。The following example parses the string representation of several date and time values by:

  • 既定の書式プロバイダーを使用します。これは、サンプル出力の生成に使用されるコンピューターの現在のスレッドカルチャの書式指定規則を提供します。Using the default format provider, which provides the formatting conventions of the current thread culture of the computer used to produce the example output. この例の出力には、en-us カルチャの書式指定規則が反映されています。The output from this example reflects the formatting conventions of the en-US culture.

  • 既定のスタイル値 () AllowWhiteSpacesを使用します。Using the default style value, which is AllowWhiteSpaces.

この例外はFormatException 、メソッドが他のカルチャの書式指定規則を使用して日付と時刻の文字列形式を解析しようとした場合にスローされる例外を処理します。It handles the FormatException exception that is thrown when the method tries to parse the string representation of a date and time by using some other culture's formatting conventions. また、現在のスレッドカルチャの書式指定規則を使用しない日付と時刻の値を正常に解析する方法も示します。It also shows how to successfully parse a date and time value that does not use the formatting conventions of the current thread culture.

using System;
using System.Globalization;

public class DateTimeParser
{
   public static void Main()
   {
      // Assume the current culture is en-US. 
      // The date is February 16, 2008, 12 hours, 15 minutes and 12 seconds.

      // Use standard en-US date and time value
      DateTime dateValue;
      string dateString = "2/16/2008 12:15:12 PM";
      try {
         dateValue = DateTime.Parse(dateString);
         Console.WriteLine("'{0}' converted to {1}.", dateString, dateValue);
      }   
      catch (FormatException) {
         Console.WriteLine("Unable to convert '{0}'.", dateString);
      }
            
      // Reverse month and day to conform to the fr-FR culture.
      // The date is February 16, 2008, 12 hours, 15 minutes and 12 seconds.
      dateString = "16/02/2008 12:15:12";
      try {
         dateValue = DateTime.Parse(dateString);
         Console.WriteLine("'{0}' converted to {1}.", dateString, dateValue);
      }   
      catch (FormatException) {
         Console.WriteLine("Unable to convert '{0}'.", dateString);
      }

      // Call another overload of Parse to successfully convert string
      // formatted according to conventions of fr-FR culture.      
      try {
         dateValue = DateTime.Parse(dateString, new CultureInfo("fr-FR", false));
         Console.WriteLine("'{0}' converted to {1}.", dateString, dateValue);
      }   
      catch (FormatException) {
         Console.WriteLine("Unable to convert '{0}'.", dateString);
      }
      
      // Parse string with date but no time component.
      dateString = "2/16/2008";
      try {
         dateValue = DateTime.Parse(dateString);
         Console.WriteLine("'{0}' converted to {1}.", dateString, dateValue);
      }   
      catch (FormatException) {
         Console.WriteLine("Unable to convert '{0}'.", dateString);
      }   
   }
}
// The example displays the following output to the console:
//       '2/16/2008 12:15:12 PM' converted to 2/16/2008 12:15:12 PM.
//       Unable to convert '16/02/2008 12:15:12'.
//       '16/02/2008 12:15:12' converted to 2/16/2008 12:15:12 PM.
//       '2/16/2008' converted to 2/16/2008 12:00:00 AM.
Imports System.Globalization

Class DateTimeParser
   Public Shared Sub Main()
      ' Assume the current culture is en-US. 
      ' The date is February 16, 2008, 12 hours, 15 minutes and 12 seconds.

      ' Use standard en-US date and time value
      Dim dateValue As Date
      Dim dateString As String = "2/16/2008 12:15:12 PM"
      Try
         dateValue = Date.Parse(dateString)
         Console.WriteLine("'{0}' converted to {1}.", dateString, dateValue)
      Catch e As FormatException
         Console.WriteLine("Unable to convert '{0}'.", dateString)
      End Try
            
      ' Reverse month and day to conform to the fr-FR culture.
      ' The date is February 16, 2008, 12 hours, 15 minutes and 12 seconds.
      dateString = "16/02/2008 12:15:12"
      Try
         dateValue = Date.Parse(dateString)
         Console.WriteLine("'{0}' converted to {1}.", dateString, dateValue)
      Catch e As FormatException
         Console.WriteLine("Unable to convert '{0}'.", dateString)
      End Try

      ' Call another overload of Parse to successfully convert string
      ' formatted according to conventions of fr-FR culture.      
      Try
         dateValue = Date.Parse(dateString, New CultureInfo("fr-FR", False))
         Console.WriteLine("'{0}' converted to {1}.", dateString, dateValue)
      Catch e As FormatException
         Console.WriteLine("Unable to convert '{0}'.", dateString)
      End Try
      
      ' Parse string with date but no time component.
      dateString = "2/16/2008"
      Try
         dateValue = Date.Parse(dateString)
         Console.WriteLine("'{0}' converted to {1}.", dateString, dateValue)
      Catch e As FormatException
         Console.WriteLine("Unable to convert '{0}'.", dateString)
      End Try
   End Sub 
End Class 
' The example displays the following output to the console:
'       '2/16/2008 12:15:12 PM' converted to 2/16/2008 12:15:12 PM.
'       Unable to convert '16/02/2008 12:15:12'.
'       '16/02/2008 12:15:12' converted to 2/16/2008 12:15:12 PM.
'       '2/16/2008' converted to 2/16/2008 12:00:00 AM.
こちらもご覧ください

Parse(String, IFormatProvider) Parse(String, IFormatProvider) Parse(String, IFormatProvider) Parse(String, IFormatProvider)

カルチャ固有の書式情報を使用して、日付と時刻の文字列形式を等価の DateTime に変換します。Converts the string representation of a date and time to its DateTime equivalent by using culture-specific format information.

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

パラメーター

s
String String String String

変換する日時を含む文字列。A string that contains a date and time to convert. 詳細については、「解析する文字列」をご覧ください。See The string to parse for more information.

provider
IFormatProvider IFormatProvider IFormatProvider IFormatProvider

s に関するカルチャ固有の書式情報を提供するオブジェクト。An object that supplies culture-specific format information about s. 解析およびカルチャの規則」をご覧ください。See Parsing and cultural conventions

戻り値

s で指定された書式に従って表記された、provider に含まれる日時と等価のオブジェクト。An object that is equivalent to the date and time contained in s as specified by provider.

例外

s に日付と時刻の有効な文字列形式が含まれていません。s does not contain a valid string representation of a date and time.

注釈

sタイムゾーン情報が含まれている場合、このKindメソッドはDateTimeKind.Local 、プロパティがであるDateTime値をs返し、の日付と時刻を現地時刻に変換します。If s contains time zone information, this method returns a DateTime value whose Kind property is DateTimeKind.Local and converts the date and time in s to local time. それ以外の場合、タイムゾーンの変換は実行DateTimeされKindず、 DateTimeKind.Unspecifiedプロパティがである値が返されます。Otherwise, it performs no time zone conversion and returns a DateTime value whose Kind property is DateTimeKind.Unspecified.

このオーバーロードは、 s DateTimeStyles.AllowWhiteSpacesスタイルを使用して解析を試みます。This overload attempts to parse s by using the DateTimeStyles.AllowWhiteSpaces style.

Example

次の例では、en-us、fr-fr、および de の各カルチャの規則を使用して、日付文字列の配列を解析します。The following example parses an array of date strings by using the conventions of the en-US, fr-FR, and de-DE cultures. この例では、1つの日付の文字列形式が、カルチャによって異なる方法で解釈されることを示しています。It demonstrates that the string representations of a single date can be interpreted differently across different cultures.

using System;
using System.Globalization;

public class ParseDate
{
   public static void Main()
   {
      // Define cultures to be used to parse dates.
      CultureInfo[] cultures = {CultureInfo.CreateSpecificCulture("en-US"), 
                                CultureInfo.CreateSpecificCulture("fr-FR"), 
                                CultureInfo.CreateSpecificCulture("de-DE")};
      // Define string representations of a date to be parsed.
      string[] dateStrings = {"01/10/2009 7:34 PM", 
                              "10.01.2009 19:34", 
                              "10-1-2009 19:34" };
      // Parse dates using each culture.
      foreach (CultureInfo culture in cultures)
      {
         DateTime dateValue;
         Console.WriteLine("Attempted conversions using {0} culture.", 
                           culture.Name);
         foreach (string dateString in dateStrings)
         {
            try {
               dateValue = DateTime.Parse(dateString, culture);
               Console.WriteLine("   Converted '{0}' to {1}.",
                                 dateString, dateValue.ToString("f", culture));
            }
            catch (FormatException) {
               Console.WriteLine("   Unable to convert '{0}' for culture {1}.", 
                                 dateString, culture.Name);
            }
         }
         Console.WriteLine();
      }                                                                                     
   }
}
// The example displays the following output to the console:
//       Attempted conversions using en-US culture.
//          Converted '01/10/2009 7:34 PM' to Saturday, January 10, 2009 7:34 PM.
//          Converted '10.01.2009 19:34' to Thursday, October 01, 2009 7:34 PM.
//          Converted '10-1-2009 19:34' to Thursday, October 01, 2009 7:34 PM.
//       
//       Attempted conversions using fr-FR culture.
//          Converted '01/10/2009 7:34 PM' to jeudi 1 octobre 2009 19:34.
//          Converted '10.01.2009 19:34' to samedi 10 janvier 2009 19:34.
//          Converted '10-1-2009 19:34' to samedi 10 janvier 2009 19:34.
//       
//       Attempted conversions using de-DE culture.
//          Converted '01/10/2009 7:34 PM' to Donnerstag, 1. Oktober 2009 19:34.
//          Converted '10.01.2009 19:34' to Samstag, 10. Januar 2009 19:34.
//          Converted '10-1-2009 19:34' to Samstag, 10. Januar 2009 19:34.
Imports System.Globalization

Module ParseDate
   Public Sub Main()
      ' Define cultures to be used to parse dates.
      Dim cultures() As CultureInfo = {CultureInfo.CreateSpecificCulture("en-US"), _
                                       CultureInfo.CreateSpecificCulture("fr-FR"), _
                                       CultureInfo.CreateSpecificCulture("de-DE")}
      ' Define string representations of a date to be parsed.
      Dim dateStrings() As String = {"01/10/2009 7:34 PM", _
                                     "10.01.2009 19:34", _
                                     "10-1-2009 19:34" }
      ' Parse dates using each culture.
      For Each culture In cultures
         Dim dateValue As Date
         Console.WriteLine("Attempted conversions using {0} culture.", culture.Name)
         For Each dateString As String In dateStrings
            Try
               dateValue = Date.Parse(dateString, culture)
               Console.WriteLine("   Converted '{0}' to {1}.", _
                                 dateString, dateValue.ToString("f", culture))
            Catch e As FormatException
               Console.WriteLine("   Unable to convert '{0}' for culture {1}.", _
                                 dateString, culture.Name)
            End Try                                                
         Next
         Console.WriteLine()
      Next                                                                                     
   End Sub
End Module
' The example displays the following output to the console:
'       Attempted conversions using en-US culture.
'          Converted '01/10/2009 7:34 PM' to Saturday, January 10, 2009 7:34 PM.
'          Converted '10.01.2009 19:34' to Thursday, October 01, 2009 7:34 PM.
'          Converted '10-1-2009 19:34' to Thursday, October 01, 2009 7:34 PM.
'       
'       Attempted conversions using fr-FR culture.
'          Converted '01/10/2009 7:34 PM' to jeudi 1 octobre 2009 19:34.
'          Converted '10.01.2009 19:34' to samedi 10 janvier 2009 19:34.
'          Converted '10-1-2009 19:34' to samedi 10 janvier 2009 19:34.
'       
'       Attempted conversions using de-DE culture.
'          Converted '01/10/2009 7:34 PM' to Donnerstag, 1. Oktober 2009 19:34.
'          Converted '10.01.2009 19:34' to Samstag, 10. Januar 2009 19:34.
'          Converted '10-1-2009 19:34' to Samstag, 10. Januar 2009 19:34.
こちらもご覧ください

Parse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles) Parse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles) Parse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles)

カルチャ固有の書式情報と書式スタイルを使用して、日付と時刻の文字列形式を含むメモリ範囲を等価の DateTime に変換します。Converts a memory span that contains string representation of a date and time to its DateTime equivalent by using culture-specific format information and a formatting style.

public static DateTime Parse (ReadOnlySpan<char> s, IFormatProvider provider = null, System.Globalization.DateTimeStyles styles = System.Globalization.DateTimeStyles.None);
static member Parse : ReadOnlySpan<char> * IFormatProvider * System.Globalization.DateTimeStyles -> DateTime
Public Shared Function Parse (s As ReadOnlySpan(Of Char), Optional provider As IFormatProvider = null, Optional styles As DateTimeStyles = System.Globalization.DateTimeStyles.None) As DateTime

パラメーター

s
ReadOnlySpan<Char>

解析する文字列を含むメモリ範囲。The memory span that contains the string to parse. 詳細については、「解析する文字列」をご覧ください。See The string to parse for more information.

provider
IFormatProvider IFormatProvider IFormatProvider IFormatProvider

s に関するカルチャ固有の書式情報を提供するオブジェクト。An object that supplies culture-specific format information about s. 解析およびカルチャの規則」をご覧ください。See Parsing and cultural conventions

styles
DateTimeStyles DateTimeStyles DateTimeStyles DateTimeStyles

解析操作を成功させるために s で使用できるスタイル要素を示し、現在のタイム ゾーンまたは現在の日付に関連して解析した日付を解釈する方法を定義する列挙値のビットごとの組み合わせ。A bitwise combination of the enumeration values that indicates the style elements that can be present in s for the parse operation to succeed, and that defines how to interpret the parsed date in relation to the current time zone or the current date. 通常指定する値は、None です。A typical value to specify is None.

戻り値

provider および styles で指定された書式に従って表記された s に含まれる日時と等価のオブジェクト。An object that is equivalent to the date and time contained in s, as specified by provider and styles.

例外

s に日付と時刻の有効な文字列形式が含まれていません。s does not contain a valid string representation of a date and time.

stylesDateTimeStyles 値の正しくない組み合わせが含まれています。styles contains an invalid combination of DateTimeStyles values. たとえば、AssumeLocalAssumeUniversal の両方です。For example, both AssumeLocal and AssumeUniversal.

Parse(String, IFormatProvider, DateTimeStyles) Parse(String, IFormatProvider, DateTimeStyles) Parse(String, IFormatProvider, DateTimeStyles) Parse(String, IFormatProvider, DateTimeStyles)

カルチャ固有の書式情報と書式スタイルを使用して、日付と時刻の文字列形式を等価の DateTime に変換します。Converts the string representation of a date and time to its DateTime equivalent by using culture-specific format information and a formatting style.

public:
 static DateTime Parse(System::String ^ s, IFormatProvider ^ provider, System::Globalization::DateTimeStyles styles);
public static DateTime Parse (string s, IFormatProvider provider, System.Globalization.DateTimeStyles styles);
static member Parse : string * IFormatProvider * System.Globalization.DateTimeStyles -> DateTime
Public Shared Function Parse (s As String, provider As IFormatProvider, styles As DateTimeStyles) As DateTime

パラメーター

s
String String String String

変換する日時を含む文字列。A string that contains a date and time to convert. 詳細については、「解析する文字列」をご覧ください。See The string to parse for more information.

provider
IFormatProvider IFormatProvider IFormatProvider IFormatProvider

s に関するカルチャ固有の書式情報を提供するオブジェクト。An object that supplies culture-specific formatting information about s. 解析およびカルチャの規則」をご覧ください。See Parsing and cultural conventions

styles
DateTimeStyles DateTimeStyles DateTimeStyles DateTimeStyles

解析操作を成功させるために s で使用できるスタイル要素を示し、現在のタイム ゾーンまたは現在の日付に関連して解析した日付を解釈する方法を定義する列挙値のビットごとの組み合わせ。A bitwise combination of the enumeration values that indicates the style elements that can be present in s for the parse operation to succeed, and that defines how to interpret the parsed date in relation to the current time zone or the current date. 通常指定する値は、None です。A typical value to specify is None.

戻り値

provider および styles で指定された書式に従って表記された s に含まれる日時と等価のオブジェクト。An object that is equivalent to the date and time contained in s, as specified by provider and styles.

例外

s に日付と時刻の有効な文字列形式が含まれていません。s does not contain a valid string representation of a date and time.

stylesDateTimeStyles 値の正しくない組み合わせが含まれています。styles contains an invalid combination of DateTimeStyles values. たとえば、AssumeLocalAssumeUniversal の両方です。For example, both AssumeLocal and AssumeUniversal.

注釈

このメソッドオーバーロードは、の日付と時刻sを変換しKind 、返されDateTimeた値のプロパティを次のように設定します。This method overload converts the date and time in s and sets the Kind property of the returned DateTime value as follows:

IfIf タイムゾーンの変換Time zone conversion Kind プロパティKind property
sタイムゾーン情報が含まれていません。s contains no time zone information. なし。None. DateTimeKind.Unspecified
sタイムゾーン情報を格納します。s contains time zone information. ローカルタイムゾーンの時刻にTo the time in the local time zone DateTimeKind.Local
sにはタイムゾーン情報が含まれておりDateTimeStyles.AdjustToUniversal 、' スタイルにはフラグが含まれています。s contains time zone information, and `styles includes the DateTimeStyles.AdjustToUniversal flag. 協定世界時 (UTC)To Coordinated Universal Time (UTC) DateTimeKind.Utc
sには、Z または GMT のタイムゾーンstyles指定子DateTimeStyles.RoundtripKindが含まれ、が含まれます。s contains the Z or GMT time zone designator, and styles includes the DateTimeStyles.RoundtripKind. なし。None. Utc

Example

次の例ではParse(String, IFormatProvider, DateTimeStyles) 、メソッドを示し、結果DateTimeKind値のプロパティの値を表示します。The following example demonstrates the Parse(String, IFormatProvider, DateTimeStyles) method and displays the value of the Kind property of the resulting DateTime values.

using System;
using System.Globalization;

public class ParseDateExample
{
   public static void Main()
   {
      string dateString;
      CultureInfo culture ;
      DateTimeStyles styles;
      DateTime result;
      
      // Parse a date and time with no styles.
      dateString = "03/01/2009 10:00 AM";
      culture = CultureInfo.CreateSpecificCulture("en-US");
      styles = DateTimeStyles.None;
      try {
         result = DateTime.Parse(dateString, culture, styles);
         Console.WriteLine("{0} converted to {1} {2}.", 
                           dateString, result, result.Kind.ToString());
      }
      catch (FormatException) {
         Console.WriteLine("Unable to convert {0} to a date and time.", 
                           dateString);
      }      
      
      // Parse the same date and time with the AssumeLocal style.
      styles = DateTimeStyles.AssumeLocal;
      try {
         result = DateTime.Parse(dateString, culture, styles);
         Console.WriteLine("{0} converted to {1} {2}.", 
                           dateString, result, result.Kind.ToString());
      }
      catch (FormatException) {
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString);
      }      
      
      // Parse a date and time that is assumed to be local.
      // This time is five hours behind UTC. The local system's time zone is 
      // eight hours behind UTC.
      dateString = "2009/03/01T10:00:00-5:00";
      styles = DateTimeStyles.AssumeLocal;
      try {
         result = DateTime.Parse(dateString, culture, styles);
         Console.WriteLine("{0} converted to {1} {2}.", 
                           dateString, result, result.Kind.ToString());
      }
      catch (FormatException) {
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString);
      }      
      
      // Attempt to convert a string in improper ISO 8601 format.
      dateString = "03/01/2009T10:00:00-5:00";
      try {
         result = DateTime.Parse(dateString, culture, styles);
         Console.WriteLine("{0} converted to {1} {2}.", 
                           dateString, result, result.Kind.ToString());
      }                     
      catch (FormatException) {
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString);
      }      

      // Assume a date and time string formatted for the fr-FR culture is the local 
      // time and convert it to UTC.
      dateString = "2008-03-01 10:00";
      culture = CultureInfo.CreateSpecificCulture("fr-FR");
      styles = DateTimeStyles.AdjustToUniversal | DateTimeStyles.AssumeLocal;
      try {
         result = DateTime.Parse(dateString, culture, styles);
         Console.WriteLine("{0} converted to {1} {2}.", 
                           dateString, result, result.Kind.ToString());
      }
      catch (FormatException) {
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString);
      }      
   }
}
// The example displays the following output to the console:
//       03/01/2009 10:00 AM converted to 3/1/2009 10:00:00 AM Unspecified.
//       03/01/2009 10:00 AM converted to 3/1/2009 10:00:00 AM Local.
//       2009/03/01T10:00:00-5:00 converted to 3/1/2009 7:00:00 AM Local.
//       Unable to convert 03/01/2009T10:00:00-5:00 to a date and time.
//       2008-03-01 10:00 converted to 3/1/2008 6:00:00 PM Utc.
Imports System.Globalization

Module ParseDateExample
   Public Sub Main()
      Dim dateString As String  
      Dim culture As CultureInfo
      Dim styles As DateTimeStyles 
      Dim result As DateTime
      
      ' Parse a date and time with no styles.
      dateString = "03/01/2009 10:00 AM"
      culture = CultureInfo.CreateSpecificCulture("en-US")
      styles = DateTimeStyles.None
      Try
         result = DateTime.Parse(dateString, culture, styles)
         Console.WriteLine("{0} converted to {1} {2}.", _
                           dateString, result, result.Kind.ToString())
      Catch e As FormatException
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString)
      End Try      
      
      ' Parse the same date and time with the AssumeLocal style.
      styles = DateTimeStyles.AssumeLocal
      Try
         result = DateTime.Parse(dateString, culture, styles)
         Console.WriteLine("{0} converted to {1} {2}.", _
                           dateString, result, result.Kind.ToString())
      Catch e As FormatException
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString)
      End Try      
      
      ' Parse a date and time that is assumed to be local.
      ' This time is five hours behind UTC. The local system's time zone is 
      ' eight hours behind UTC.
      dateString = "2009/03/01T10:00:00-5:00"
      styles = DateTimeStyles.AssumeLocal
      Try
         result = DateTime.Parse(dateString, culture, styles)
         Console.WriteLine("{0} converted to {1} {2}.", _
                           dateString, result, result.Kind.ToString())
      Catch e As FormatException
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString)
      End Try      
      
      ' Attempt to convert a string in improper ISO 8601 format.
      dateString = "03/01/2009T10:00:00-5:00"
      Try
         result = DateTime.Parse(dateString, culture, styles)
         Console.WriteLine("{0} converted to {1} {2}.", _
                           dateString, result, result.Kind.ToString())
      Catch e As FormatException
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString)
      End Try      

      ' Assume a date and time string formatted for the fr-FR culture is the local 
      ' time and convert it to UTC.
      dateString = "2008-03-01 10:00"
      culture = CultureInfo.CreateSpecificCulture("fr-FR")
      styles = DateTimeStyles.AdjustToUniversal Or DateTimeStyles.AssumeLocal
      Try
         result = DateTime.Parse(dateString, culture, styles)
         Console.WriteLine("{0} converted to {1} {2}.", _
                           dateString, result, result.Kind.ToString())
      Catch e As FormatException
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString)
      End Try      
   End Sub
End Module
'
' The example displays the following output to the console:
'       03/01/2009 10:00 AM converted to 3/1/2009 10:00:00 AM Unspecified.
'       03/01/2009 10:00 AM converted to 3/1/2009 10:00:00 AM Local.
'       2009/03/01T10:00:00-5:00 converted to 3/1/2009 7:00:00 AM Local.
'       Unable to convert 03/01/2009T10:00:00-5:00 to a date and time.
'       2008-03-01 10:00 converted to 3/1/2008 6:00:00 PM Utc.
こちらもご覧ください

適用対象