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 インライン コード ランナーとプレイグラウンドで実行されます。The 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/。サンプルの 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であるのに対し、TryParseメソッドを返します。falseします。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. 時刻部分がない場合、メソッドは深夜 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)オーバー ロードして、含めるDateTimeStyles.NoCurrentDateDefaultで、stylesでいる場合は、メソッドが想定年 1 月 1 日 0001 引数。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.

  • 1 時間のみとない日付部分と、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.NoCurrentDateDefaultで、stylesでいる場合は、メソッドが想定年 1 月 1 日 0001 引数。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 つ目は 7 時間であるタイム ゾーンの時刻を指定 UTC より前。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 2008年 11 月 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

入力文字列が解析メソッドで使用されるカレンダーで、閏年の leap 日を表すかどうか (を参照してください解析およびカルチャの規則)、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. 入力文字列が閏日非 leap 年でを表している場合、メソッドがスローされます、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) ADateTimeFormatInfoオブジェクト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) ACultureInfoオブジェクト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トピック。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)、ペアで囲むことができ、いずれかで最後できます。 または以上の NULL 文字 (u+0000) です。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)オーバー ロードは、stylesパラメーターの 1 つまたは複数のメンバーで構成される、DateTimeStyles列挙体。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:

If s 、タイム ゾーン オフセットが含まれて 場合sタイム ゾーン情報が含まれていないがstylesが含まれています、AssumeLocalフラグ、メソッドの呼び出し、文字列を解析しますToUniversalTime、返されたに変換するDateTime値です。(UTC) とセット、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.
If s UTC で表すことを示す場合、またはsタイム ゾーン情報は含まれませんが、stylesが含まれています、AssumeUniversalフラグは、メソッド、文字列を解析して、返されたのタイム ゾーンの変換は行われませんDateTime値、およびセット、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. しない限り、AdjustToUniversalフラグが存在する、 Kind 、返されたプロパティDateTime値に設定されてDateTimeKind.Localします。Unless 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. しない限り、AdjustToUniversalフラグが存在する、メソッドは、返された変換DateTime値を UTC から現地時刻とセットにそのKindプロパティをDateTimeKind.Localします。Unless 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戻り値のオーバー ロードをDateTimeKindプロパティには、タイム ゾーン情報が含まれています。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メソッドは、タイム ゾーンの変換を実行し、値を設定可能性がありますも、Kindプロパティの値に応じて異なる方法で、sstylesパラメーター。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 タイム ゾーンの情報を格納およびstylesが含まれています、AdjustToUniversalフラグ。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.RoundtripKindフラグ。You 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フラグで解析操作に影響DateTimeは、"o"、"r"または"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このメソッドが戻る、タイム ゾーン情報を含む、DateTimeKindプロパティはDateTimeKind.Localした日付と時刻に変換します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. それ以外の場合、タイム ゾーンの変換を行わずを返します、DateTimeKindプロパティは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.

このオーバー ロードは、解析を試みます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このメソッドが戻る、タイム ゾーン情報を含む、DateTimeKindプロパティはDateTimeKind.Localした日付と時刻に変換します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. それ以外の場合、タイム ゾーンの変換を行わずを返します、DateTimeKindプロパティは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-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)メソッドの値を表示し、Kind結果のプロパティDateTime値。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.
こちらもご覧ください

適用対象