DateTime.ParseExact Yöntem

Tanım

Tarih ve saatin belirtilen dize temsilini DateTime eşdeğerine dönüştürür.Converts the specified string representation of a date and time to its DateTime equivalent. Dize gösteriminin biçimi belirtilen biçimle tam olarak eşleşmelidir veya bir özel durum oluşturulur.The format of the string representation must match a specified format exactly or an exception is thrown.

Aşırı Yüklemeler

ParseExact(String, String, IFormatProvider)

Tarih ve saatin belirtilen dize temsilini, DateTime belirtilen biçim ve kültüre özgü biçim bilgilerini kullanarak eşdeğer olarak dönüştürür.Converts the specified string representation of a date and time to its DateTime equivalent using the specified format and culture-specific format information. Dize gösteriminin biçimi belirtilen biçimle tam olarak eşleşmelidir.The format of the string representation must match the specified format exactly.

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

Tarih ve saatin belirtilen span gösterimini DateTime , belirtilen biçim, kültüre özgü biçim bilgilerini ve stili kullanarak eşdeğer olarak dönüştürür.Converts the specified span representation of a date and time to its DateTime equivalent using the specified format, culture-specific format information, and style. Dize gösteriminin biçimi belirtilen biçimle tam olarak eşleşmelidir veya bir özel durum oluşturulur.The format of the string representation must match the specified format exactly or an exception is thrown.

ParseExact(ReadOnlySpan<Char>, String[], IFormatProvider, DateTimeStyles)

Bir tarih ve saatin belirtilen Aralık gösterimini DateTime , belirtilen biçim dizisini, kültüre özgü biçim bilgilerini ve stili kullanarak eşdeğerine dönüştürür.Converts the specified span representation of a date and time to its DateTime equivalent using the specified array of formats, culture-specific format information, and style. Dize gösteriminin biçimi belirtilen biçimlerden en az biriyle tam olarak eşleşmelidir veya bir özel durum oluşturuldu.The format of the string representation must match at least one of the specified formats exactly or an exception is thrown.

ParseExact(String, String, IFormatProvider, DateTimeStyles)

Tarih ve saatin belirtilen dize temsilini DateTime , belirtilen biçim, kültüre özel biçim bilgileri ve stil kullanarak eşdeğer olarak dönüştürür.Converts the specified string representation of a date and time to its DateTime equivalent using the specified format, culture-specific format information, and style. Dize gösteriminin biçimi belirtilen biçimle tam olarak eşleşmelidir veya bir özel durum oluşturulur.The format of the string representation must match the specified format exactly or an exception is thrown.

ParseExact(String, String[], IFormatProvider, DateTimeStyles)

Tarih ve saatin belirtilen dize gösterimini DateTime , belirtilen biçim dizisini, kültüre özgü biçim bilgilerini ve stili kullanarak eşdeğerine dönüştürür.Converts the specified string representation of a date and time to its DateTime equivalent using the specified array of formats, culture-specific format information, and style. Dize gösteriminin biçimi belirtilen biçimlerden en az biriyle tam olarak eşleşmelidir veya bir özel durum oluşturuldu.The format of the string representation must match at least one of the specified formats exactly or an exception is thrown.

Açıklamalar

Önemli

Japonca takvimlerdeki Eras, Emperor 'un Reign 'ı temel alır ve bu nedenle değiştirilmesi beklenir.Eras in the Japanese calendars are based on the emperor's reign and are therefore expected to change. Örneğin, ve içinde Reiwa dönemi başlangıcını 1 Mayıs 2019 olarak işaretledi JapaneseCalendar JapaneseLunisolarCalendar .For example, May 1, 2019 marked the beginning of the Reiwa era in the JapaneseCalendar and JapaneseLunisolarCalendar. Bu tür bir dönem değişikliği, bu takvimleri kullanan tüm uygulamaları etkiler.Such a change of era affects all applications that use these calendars. Daha fazla bilgi edinmek ve uygulamalarınızın etkilenip etkilenmediğini öğrenmek için bkz. .net 'Teki Japonca takvimdeki yeni bir dönemi işleme .See Handling a new era in the Japanese calendar in .NET for more information and to determine whether your applications are affected. Bu, dönem değişikliğine yönelik hazırlık sağlamak için uygulamalarınızı Windows sistemlerinde test etme hakkında bilgi için bkz. Japonca dönem değişikliği için uygulamanızı hazırlama .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. Birden çok dönemi ile takvimleri destekleyen ve birden çok dönemi destekleyen takvimlerle çalışırken en iyi uygulamalar için bkz. .net özellikleri için dönemi ile çalışma .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.

ParseExact(String, String, IFormatProvider)

Tarih ve saatin belirtilen dize temsilini, DateTime belirtilen biçim ve kültüre özgü biçim bilgilerini kullanarak eşdeğer olarak dönüştürür.Converts the specified string representation of a date and time to its DateTime equivalent using the specified format and culture-specific format information. Dize gösteriminin biçimi belirtilen biçimle tam olarak eşleşmelidir.The format of the string representation must match the specified format exactly.

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

Parametreler

s
String

Dönüştürülecek bir tarih ve saat içeren bir dize.A string that contains a date and time to convert.

format
String

Gerekli biçimini tanımlayan bir Biçim belirleyicisi s .A format specifier that defines the required format of s. Daha fazla bilgi için, açıklamalar bölümüne bakın.For more information, see the Remarks section.

provider
IFormatProvider

Hakkında kültüre özgü biçim bilgilerini sağlayan bir nesne s .An object that supplies culture-specific format information about s.

Döndürülenler

DateTime

sVe tarafından belirtildiği gibi, içinde bulunan tarih ve saate eşdeğer bir nesne format provider .An object that is equivalent to the date and time contained in s, as specified by format and provider.

Özel durumlar

s ya format da null .s or format is null.

s ya da format boş bir dizedir.s or format is an empty string.

-veya--or- s , içinde belirtilen düzene karşılık gelen bir tarih ve saat içermez format .s does not contain a date and time that corresponds to the pattern specified in format.

-veya--or- İçindeki saat bileşeni ve PM/PM göstergesi s kabul etmez.The hour component and the AM/PM designator in s do not agree.

Örnekler

Aşağıdaki örnek ParseExact yöntemini gösterir.The following example demonstrates the ParseExact method.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string dateString, format;
      DateTime result;
      CultureInfo provider = CultureInfo.InvariantCulture;

      // Parse date-only value with invariant culture.
      dateString = "06/15/2008";
      format = "d";
      try {
         result = DateTime.ParseExact(dateString, format, provider);
         Console.WriteLine("{0} converts to {1}.", dateString, result.ToString());
      }
      catch (FormatException) {
         Console.WriteLine("{0} is not in the correct format.", dateString);
      }

      // Parse date-only value without leading zero in month using "d" format.
      // Should throw a FormatException because standard short date pattern of
      // invariant culture requires two-digit month.
      dateString = "6/15/2008";
      try {
         result = DateTime.ParseExact(dateString, format, provider);
         Console.WriteLine("{0} converts to {1}.", dateString, result.ToString());
      }
      catch (FormatException) {
         Console.WriteLine("{0} is not in the correct format.", dateString);
      }

      // Parse date and time with custom specifier.
      dateString = "Sun 15 Jun 2008 8:30 AM -06:00";
      format = "ddd dd MMM yyyy h:mm tt zzz";
      try {
         result = DateTime.ParseExact(dateString, format, provider);
         Console.WriteLine("{0} converts to {1}.", dateString, result.ToString());
      }
      catch (FormatException) {
         Console.WriteLine("{0} is not in the correct format.", dateString);
      }

      // Parse date and time with offset but without offset's minutes.
      // Should throw a FormatException because "zzz" specifier requires leading
      // zero in hours.
      dateString = "Sun 15 Jun 2008 8:30 AM -06";
      try {
         result = DateTime.ParseExact(dateString, format, provider);
         Console.WriteLine("{0} converts to {1}.", dateString, result.ToString());
      }
      catch (FormatException) {
         Console.WriteLine("{0} is not in the correct format.", dateString);
      }

      dateString = "15/06/2008 08:30";
      format = "g";
      provider = new CultureInfo("fr-FR");
      try {
         result = DateTime.ParseExact(dateString, format, provider);
         Console.WriteLine("{0} converts to {1}.", dateString, result.ToString());
      }
      catch (FormatException) {
         Console.WriteLine("{0} is not in the correct format.", dateString);
      }

      // Parse a date that includes seconds and milliseconds
      // by using the French (France) and invariant cultures.
      dateString = "18/08/2015 06:30:15.006542";
      format = "dd/MM/yyyy HH:mm:ss.ffffff";
      try {
         result = DateTime.ParseExact(dateString, format, provider);
         Console.WriteLine("{0} converts to {1}.", dateString, result.ToString());
      }
      catch (FormatException) {
         Console.WriteLine("{0} is not in the correct format.", dateString);
      }
   }
}
// The example displays the following output:
//       06/15/2008 converts to 6/15/2008 12:00:00 AM.
//       6/15/2008 is not in the correct format.
//       Sun 15 Jun 2008 8:30 AM -06:00 converts to 6/15/2008 7:30:00 AM.
//       Sun 15 Jun 2008 8:30 AM -06 is not in the correct format.
//       15/06/2008 08:30 converts to 6/15/2008 8:30:00 AM.
//       18/08/2015 06:30:15.006542 converts to 8/18/2015 6:30:15 AM.
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim dateString, format As String  
      Dim result As Date
      Dim provider As CultureInfo = CultureInfo.InvariantCulture

      ' Parse date-only value with invariant culture.
      dateString = "06/15/2008"
      format = "d"
      Try
         result = Date.ParseExact(dateString, format, provider)
         Console.WriteLine("{0} converts to {1}.", dateString, result.ToString())
      Catch e As FormatException
         Console.WriteLine("{0} is not in the correct format.", dateString)
      End Try 

      ' Parse date-only value without leading zero in month using "d" format.
      ' Should throw a FormatException because standard short date pattern of 
      ' invariant culture requires two-digit month.
      dateString = "6/15/2008"
      Try
         result = Date.ParseExact(dateString, format, provider)
         Console.WriteLine("{0} converts to {1}.", dateString, result.ToString())
      Catch e As FormatException
         Console.WriteLine("{0} is not in the correct format.", dateString)
      End Try 
      
      ' Parse date and time with custom specifier.
      dateString = "Sun 15 Jun 2008 8:30 AM -06:00"
      format = "ddd dd MMM yyyy h:mm tt zzz"        
      Try
         result = Date.ParseExact(dateString, format, provider)
         Console.WriteLine("{0} converts to {1}.", dateString, result.ToString())
      Catch e As FormatException
         Console.WriteLine("{0} is not in the correct format.", dateString)
      End Try 
      
      ' Parse date and time with offset but without offset's minutes.
      ' Should throw a FormatException because "zzz" specifier requires leading  
      ' zero in hours.
      dateString = "Sun 15 Jun 2008 8:30 AM -06"
      Try
         result = Date.ParseExact(dateString, format, provider)
         Console.WriteLine("{0} converts to {1}.", dateString, result.ToString())
      Catch e As FormatException
         Console.WriteLine("{0} is not in the correct format.", dateString)
      End Try 
      
      ' Parse a date string using the French (France) culture.
      dateString = "15/06/2008 08:30"
      format = "g"
      provider = New CultureInfo("fr-FR")
      Try
         result = Date.ParseExact(dateString, format, provider)
         Console.WriteLine("{0} converts to {1}.", dateString, result.ToString())
      Catch e As FormatException
         Console.WriteLine("{0} is not in the correct format.", dateString)
      End Try

      ' Parse a date that includes seconds and milliseconds
      ' by using the French (France) and invariant cultures.
      dateString = "18/08/2015 06:30:15.006542"
      format = "dd/MM/yyyy HH:mm:ss.ffffff"
      Try
         result = Date.ParseExact(dateString, format, provider)
         Console.WriteLine("{0} converts to {1}.", dateString, result.ToString())
      Catch e As FormatException
         Console.WriteLine("{0} is not in the correct format.", dateString)
      End Try
   End Sub
End Module
' The example displays the following output:
'       06/15/2008 converts to 6/15/2008 12:00:00 AM.
'       6/15/2008 is not in the correct format.
'       Sun 15 Jun 2008 8:30 AM -06:00 converts to 6/15/2008 7:30:00 AM.
'       Sun 15 Jun 2008 8:30 AM -06 is not in the correct format.
'       15/06/2008 08:30 converts to 6/15/2008 8:30:00 AM.
'       18/08/2015 06:30:15.006542 converts to 8/18/2015 6:30:15 AM.

Açıklamalar

DateTime.ParseExact(String, String, IFormatProvider)Yöntemi, bir tarihin dize gösterimini ayrıştırır ve bu, parametresi tarafından tanımlanan biçimde olmalıdır format .The DateTime.ParseExact(String, String, IFormatProvider) method parses the string representation of a date, which must be in the format defined by the format parameter. Ayrıca <Date> <Time> , bir tarih ve saatin dize gösterimine ait ve öğelerinin, tarafından belirtilen sırada görünmesini format ve s tarafından izin verilenden başka boşluk olmaması gerekir format .It also requires that the <Date> and <Time> elements of the string representation of a date and time appear in the order specified by format, and that s have no white space other than that permitted by format. formatZaman öğesi olmayan bir tarih tanımlıyorsa ve ayrıştırma işlemi başarılı olursa, sonuçta elde edilen DateTime değerin gece yarısı (00:00:00) olur.If format defines a date with no time element and the parse operation succeeds, the resulting DateTime value has a time of midnight (00:00:00). formatTarih öğesi olmayan bir saat tanımlıyorsa ve ayrıştırma işlemi başarılı olursa, sonuçta elde edilen DateTime değerin tarihi vardır DateTime.Now.Date .If format defines a time with no date element and the parse operation succeeds, the resulting DateTime value has a date of DateTime.Now.Date.

sBelirli bir saat diliminde bir saati temsil etmez ve ayrıştırma işlemi başarılı olursa, Kind döndürülen DateTime değerin özelliği olur DateTimeKind.Unspecified .If s does not represent a time in a particular time zone and the parse operation succeeds, the Kind property of the returned DateTime value is DateTimeKind.Unspecified. sBelirli bir saat dilimindeki süreyi temsil ediyorsa ve format saat dilimi bilgilerinin mevcut olmasına izin verir (örneğin, format "o", "r" veya "u" standart biçim belirticilerine eşitse veya "z", "ZZ" veya "zzz" özel biçim belirticilerini içeriyorsa), Kind döndürülen DateTime değerin özelliği olur DateTimeKind.Local .If s does represent the time in a particular time zone and format allows time zone information to be present (for example, if format is equal to the "o", "r", or "u" standard format specifiers, or if it contains the "z", "zz", or "zzz" custom format specifiers), the Kind property of the returned DateTime value is DateTimeKind.Local.

formatParametresi, tek bir standart biçim belirticisi veya gerekli biçimini tanımlayan bir ya da daha fazla özel biçim belirticisini içeren bir dizedir s .The format parameter is a string that contains either a single standard format specifier, or one or more custom format specifiers that define the required format of s. Geçerli biçimlendirme kodları hakkında daha fazla bilgi için bkz. Standart Tarih ve saat biçim dizeleri veya özel tarih ve saat biçim dizeleri.For details about valid formatting codes, see Standard Date and Time Format Strings or Custom Date and Time Format Strings.

Not

formatTarih veya saat ayırıcıları içermeyen bir özel biçim deseninin (örneğin, "yyyyMMddHHmm"), parametre için sabit kültür ' i provider ve her bir özel Biçim belirticisinin en geniş formunu kullanın.If format is a custom format pattern that does not include date or time separators (such as "yyyyMMddHHmm"), use the invariant culture for the provider parameter and the widest form of each custom format specifier. Örneğin, biçim düzeninde saat belirtmek istiyorsanız, daha dar biçim yerine "HH", "H" daha geniş biçimi belirtin.For example, if you want to specify hours in the format pattern, specify the wider form, "HH", instead of the narrower form, "H".

İçinde kullanılan belirli tarih ve saat sembolleri ve dizeleri (belirli bir dildeki haftanın günleri adları gibi) s parametresi tarafından tanımlanır provider , çünkü s format bir standart biçim belirleyicisi dizesidir, öğesinin kesin biçimi olur.The particular date and time symbols and strings (such as names of the days of the week in a particular language) used in s are defined by the provider parameter, as is the precise format of s if format is a standard format specifier string. providerParametresi aşağıdakilerden herhangi biri olabilir:The provider parameter can be any of the following:

providerİse null , CultureInfo geçerli kültüre karşılık gelen nesne kullanılır.If provider is null, the CultureInfo object that corresponds to the current culture is used.

Arayanlara Notlar

İçinde, .NET Framework 4.NET Framework 4 ParseExact FormatException Ayrıştırılacak dize bir Hour bileşeni ve anlaşmada olmayan BIR har/PM belirleyicisi içeriyorsa Yöntem bir oluşturur.In the .NET Framework 4.NET Framework 4, the ParseExact method throws a FormatException if the string to be parsed contains an hour component and an AM/PM designator that are not in agreement. .NET Framework 3.5.NET Framework 3.5Ve önceki sürümlerinde, ı/PM göstergesi yok sayılır.In the .NET Framework 3.5.NET Framework 3.5 and earlier versions, the AM/PM designator is ignored.

Ayrıca bkz.

Şunlara uygulanır

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

Tarih ve saatin belirtilen span gösterimini DateTime , belirtilen biçim, kültüre özgü biçim bilgilerini ve stili kullanarak eşdeğer olarak dönüştürür.Converts the specified span representation of a date and time to its DateTime equivalent using the specified format, culture-specific format information, and style. Dize gösteriminin biçimi belirtilen biçimle tam olarak eşleşmelidir veya bir özel durum oluşturulur.The format of the string representation must match the specified format exactly or an exception is thrown.

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

Parametreler

s
ReadOnlySpan<Char>

Dönüştürülecek bir tarih ve saati temsil eden karakterleri içeren bir yayılma.A span containing the characters that represent a date and time to convert.

format
ReadOnlySpan<Char>

Gerekli biçimini tanımlayan bir biçim belirticisini temsil eden karakterleri içeren bir yayılma s .A span containing the characters that represent a format specifier that defines the required format of s.

provider
IFormatProvider

Hakkında kültüre özgü biçimlendirme bilgileri sağlayan nesne s .An object that supplies culture-specific formatting information about s.

style
DateTimeStyles

İle ilgili ek bilgiler s , ' de bulunabilecek stil öğeleri hakkında s veya ' den bir değere dönüştürme hakkında ek bilgi sağlayan sabit listesi değerlerinin bit düzeyinde birleşimi s DateTime .A bitwise combination of the enumeration values that provides additional information about s, about style elements that may be present in s, or about the conversion from s to a DateTime value. Belirtmek için tipik bir değer None .A typical value to specify is None.

Döndürülenler

DateTime

, s Ve tarafından belirtildiği gibi, içinde bulunan tarih ve saate eşdeğer bir nesne format provider style .An object that is equivalent to the date and time contained in s, as specified by format, provider, and style.

Şunlara uygulanır

ParseExact(ReadOnlySpan<Char>, String[], IFormatProvider, DateTimeStyles)

Bir tarih ve saatin belirtilen Aralık gösterimini DateTime , belirtilen biçim dizisini, kültüre özgü biçim bilgilerini ve stili kullanarak eşdeğerine dönüştürür.Converts the specified span representation of a date and time to its DateTime equivalent using the specified array of formats, culture-specific format information, and style. Dize gösteriminin biçimi belirtilen biçimlerden en az biriyle tam olarak eşleşmelidir veya bir özel durum oluşturuldu.The format of the string representation must match at least one of the specified formats exactly or an exception is thrown.

public static DateTime ParseExact (ReadOnlySpan<char> s, string[] formats, IFormatProvider? provider, System.Globalization.DateTimeStyles style = System.Globalization.DateTimeStyles.None);
public static DateTime ParseExact (ReadOnlySpan<char> s, string[] formats, IFormatProvider provider, System.Globalization.DateTimeStyles style = System.Globalization.DateTimeStyles.None);
static member ParseExact : ReadOnlySpan<char> * string[] * IFormatProvider * System.Globalization.DateTimeStyles -> DateTime
Public Shared Function ParseExact (s As ReadOnlySpan(Of Char), formats As String(), provider As IFormatProvider, Optional style As DateTimeStyles = System.Globalization.DateTimeStyles.None) As DateTime

Parametreler

s
ReadOnlySpan<Char>

Dönüştürülecek bir tarih ve saati temsil eden karakterleri içeren bir yayılma.A span containing the characters that represent a date and time to convert.

formats
String[]

İzin verilen biçimlerin dizisi s .An array of allowable formats of s.

provider
IFormatProvider

Hakkında kültüre özgü biçim bilgilerini sağlayan bir nesne s .An object that supplies culture-specific format information about s.

style
DateTimeStyles

İzin verilen biçimini gösteren sabit listesi değerlerinin bit düzeyinde birleşimi s .A bitwise combination of enumeration values that indicates the permitted format of s. Belirtmek için tipik bir değer None .A typical value to specify is None.

Döndürülenler

DateTime

, s Ve tarafından belirtildiği gibi, içinde bulunan tarih ve saate eşdeğer bir nesne formats provider style .An object that is equivalent to the date and time contained in s, as specified by formats, provider, and style.

Şunlara uygulanır

ParseExact(String, String, IFormatProvider, DateTimeStyles)

Tarih ve saatin belirtilen dize temsilini DateTime , belirtilen biçim, kültüre özel biçim bilgileri ve stil kullanarak eşdeğer olarak dönüştürür.Converts the specified string representation of a date and time to its DateTime equivalent using the specified format, culture-specific format information, and style. Dize gösteriminin biçimi belirtilen biçimle tam olarak eşleşmelidir veya bir özel durum oluşturulur.The format of the string representation must match the specified format exactly or an exception is thrown.

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

Parametreler

s
String

Dönüştürülecek tarih ve saati içeren bir dize.A string containing a date and time to convert.

format
String

Gerekli biçimini tanımlayan bir Biçim belirleyicisi s .A format specifier that defines the required format of s. Daha fazla bilgi için, açıklamalar bölümüne bakın.For more information, see the Remarks section.

provider
IFormatProvider

Hakkında kültüre özgü biçimlendirme bilgileri sağlayan nesne s .An object that supplies culture-specific formatting information about s.

style
DateTimeStyles

İle ilgili ek bilgiler s , ' de bulunabilecek stil öğeleri hakkında s veya ' den bir değere dönüştürme hakkında ek bilgi sağlayan sabit listesi değerlerinin bit düzeyinde birleşimi s DateTime .A bitwise combination of the enumeration values that provides additional information about s, about style elements that may be present in s, or about the conversion from s to a DateTime value. Belirtmek için tipik bir değer None .A typical value to specify is None.

Döndürülenler

DateTime

, s Ve tarafından belirtildiği gibi, içinde bulunan tarih ve saate eşdeğer bir nesne format provider style .An object that is equivalent to the date and time contained in s, as specified by format, provider, and style.

Özel durumlar

s ya format da null .s or format is null.

s ya da format boş bir dizedir.s or format is an empty string.

-veya--or- s , içinde belirtilen düzene karşılık gelen bir tarih ve saat içermez format .s does not contain a date and time that corresponds to the pattern specified in format.

-veya--or- İçindeki saat bileşeni ve PM/PM göstergesi s kabul etmez.The hour component and the AM/PM designator in s do not agree.

style geçersiz bir değer birleşimi içeriyor DateTimeStyles .style contains an invalid combination of DateTimeStyles values. Örneğin, AssumeLocal ve AssumeUniversal .For example, both AssumeLocal and AssumeUniversal.

Örnekler

Aşağıdaki örnek ParseExact(String, String, IFormatProvider) yöntemini gösterir.The following example demonstrates the ParseExact(String, String, IFormatProvider) method. Parametre eşitse "5/01/2009 8:30" dizesinin, styles DateTimeStyles.None önde gelen boşluklara izin verilmediği için bu dizenin başarıyla ayrıştırılmadığını unutmayın format .Note that the string " 5/01/2009 8:30 AM" cannot be parsed successfully when the styles parameter equals DateTimeStyles.None because leading spaces are not allowed by format. Ayrıca, "5/01/2009 09:00" dizesi format "aa/gg/yyyyhh: mm" ile başarılı bir şekilde ayrıştırılamaz, çünkü tarih dizesi, ' ın önünde sıfır ile birlikte bir önüne sıfır ile değil format .Additionally, the string "5/01/2009 09:00" cannot be parsed successfully with a format of "MM/dd/yyyyhh:mm" because the date string does not precede the month number with a leading zero, as format requires.

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      CultureInfo enUS = new CultureInfo("en-US");
      string dateString;
      DateTime dateValue;

      // Parse date with no style flags.
      dateString = " 5/01/2009 8:30 AM";
      try {
         dateValue = DateTime.ParseExact(dateString, "g", enUS, DateTimeStyles.None);
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
                           dateValue.Kind);
      }
      catch (FormatException) {
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
      }
      // Allow a leading space in the date string.
      try {
         dateValue = DateTime.ParseExact(dateString, "g", enUS, DateTimeStyles.AllowLeadingWhite);
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
                           dateValue.Kind);
      }
      catch (FormatException) {
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
      }

      // Use custom formats with M and MM.
      dateString = "5/01/2009 09:00";
      try {
         dateValue = DateTime.ParseExact(dateString, "M/dd/yyyy hh:mm", enUS, DateTimeStyles.None);
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
                           dateValue.Kind);
      }
      catch (FormatException) {
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
      }
      // Allow a leading space in the date string.
      try {
         dateValue = DateTime.ParseExact(dateString, "MM/dd/yyyy hh:mm", enUS, DateTimeStyles.None);
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
                           dateValue.Kind);
      }
      catch (FormatException) {
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
      }

      // Parse a string with time zone information.
      dateString = "05/01/2009 01:30:42 PM -05:00";
      try {
         dateValue = DateTime.ParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS, DateTimeStyles.None);
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
                           dateValue.Kind);
      }
      catch (FormatException) {
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
      }
      // Allow a leading space in the date string.
      try {
         dateValue = DateTime.ParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS,
                                     DateTimeStyles.AdjustToUniversal);
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
                           dateValue.Kind);
      }
      catch (FormatException) {
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
      }

      // Parse a string representing UTC.
      dateString = "2008-06-11T16:11:20.0904778Z";
      try {
         dateValue = DateTime.ParseExact(dateString, "o", CultureInfo.InvariantCulture,
                                     DateTimeStyles.None);
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
                           dateValue.Kind);
      }
      catch (FormatException) {
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
      }
      try {
         dateValue = DateTime.ParseExact(dateString, "o", CultureInfo.InvariantCulture,
                                     DateTimeStyles.RoundtripKind);
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
                           dateValue.Kind);
      }
      catch (FormatException) {
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
      }
   }
}
// The example displays the following output:
//    ' 5/01/2009 8:30 AM' is not in an acceptable format.
//    Converted ' 5/01/2009 8:30 AM' to 5/1/2009 8:30:00 AM (Unspecified).
//    Converted '5/01/2009 09:00' to 5/1/2009 9:00:00 AM (Unspecified).
//    '5/01/2009 09:00' is not in an acceptable format.
//    Converted '05/01/2009 01:30:42 PM -05:00' to 5/1/2009 11:30:42 AM (Local).
//    Converted '05/01/2009 01:30:42 PM -05:00' to 5/1/2009 6:30:42 PM (Utc).
//    Converted '2008-06-11T16:11:20.0904778Z' to 6/11/2008 9:11:20 AM (Local).
//    Converted '2008-06-11T16:11:20.0904778Z' to 6/11/2008 4:11:20 PM (Utc).
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim enUS As New CultureInfo("en-US") 
      Dim dateString As String
      Dim dateValue As Date
      
      ' Parse date with no style flags.
      dateString = " 5/01/2009 8:30 AM"
      Try
         dateValue = Date.ParseExact(dateString, "g", enUS, DateTimeStyles.None)
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
                           dateValue.Kind)
      Catch e As FormatException
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
      End Try
      ' Allow a leading space in the date string.
      Try
         dateValue = Date.ParseExact(dateString, "g", enUS, DateTimeStyles.AllowLeadingWhite)
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
                           dateValue.Kind)
      Catch e As FormatException
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
      End Try
      
      ' Use custom formats with M and MM.
      dateString = "5/01/2009 09:00"
      Try
         dateValue = Date.ParseExact(dateString, "M/dd/yyyy hh:mm", enUS, DateTimeStyles.None)
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
                           dateValue.Kind)
      Catch e As FormatException
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
      End Try
      ' Allow a leading space in the date string.
      Try
         dateValue = Date.ParseExact(dateString, "MM/dd/yyyy hh:mm", enUS, DateTimeStyles.None)
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
                           dateValue.Kind)
      Catch e As FormatException
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
      End Try

      ' Parse a string with time zone information.
      dateString = "05/01/2009 01:30:42 PM -05:00" 
      Try
         dateValue = Date.ParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS, DateTimeStyles.None)
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
                           dateValue.Kind)
      Catch e As FormatException
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
      End Try
      ' Allow a leading space in the date string.
      Try
         dateValue = Date.ParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS, _
                                     DateTimeStyles.AdjustToUniversal)
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
                           dateValue.Kind)
      Catch e As FormatException
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
      End Try
           
      ' Parse a string representing UTC.
      dateString = "2008-06-11T16:11:20.0904778Z"
      Try
         dateValue = Date.ParseExact(dateString, "o", CultureInfo.InvariantCulture, _
                                     DateTimeStyles.None)
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
                           dateValue.Kind)
      Catch e As FormatException
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
      End Try
      Try
         dateValue = Date.ParseExact(dateString, "o", CultureInfo.InvariantCulture, _
                                     DateTimeStyles.RoundtripKind)
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
                           dateValue.Kind)
      Catch e As FormatException
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
      End Try
   End Sub
End Module
' The example displays the following output:
'    ' 5/01/2009 8:30 AM' is not in an acceptable format.
'    Converted ' 5/01/2009 8:30 AM' to 5/1/2009 8:30:00 AM (Unspecified).
'    Converted '5/01/2009 09:00' to 5/1/2009 9:00:00 AM (Unspecified).
'    '5/01/2009 09:00' is not in an acceptable format.
'    Converted '05/01/2009 01:30:42 PM -05:00' to 5/1/2009 11:30:42 AM (Local).
'    Converted '05/01/2009 01:30:42 PM -05:00' to 5/1/2009 6:30:42 PM (Utc).
'    Converted '2008-06-11T16:11:20.0904778Z' to 6/11/2008 9:11:20 AM (Local).
'    Converted '2008-06-11T16:11:20.0904778Z' to 6/11/2008 4:11:20 PM (Utc).

Açıklamalar

DateTime.ParseExact(String, String, IFormatProvider, DateTimeStyles)Yöntemi, bir tarihin dize gösterimini ayrıştırır ve bu, parametresi tarafından tanımlanan bir biçimde olmalıdır format .The DateTime.ParseExact(String, String, IFormatProvider, DateTimeStyles) method parses the string representation of a date, which must be in a format defined by the format parameter. Ayrıca, içinde tarih ve saat öğelerinin s tarafından belirtilen sırada görünmesini gerektirir format .It also requires that the date and time elements in s appear in the order specified by format. Parametresinin s düzeniyle eşleşmezse format , parametresi tarafından tanımlanan çeşitlerle eşleşmez style , yöntemi bir oluşturur FormatException .If s does not match the pattern of the format parameter, with any variations defined by the style parameter, the method throws a FormatException. Buna karşılık Yöntem, DateTime.Parse(String, IFormatProvider, DateTimeStyles) biçim sağlayıcısının nesnesi tarafından tanınan biçimlerden herhangi birindeki bir tarihin dize gösterimini ayrıştırır DateTimeFormatInfo .In contrast, the DateTime.Parse(String, IFormatProvider, DateTimeStyles) method parses the string representation of a date in any one of the formats recognized by the format provider's DateTimeFormatInfo object. DateTime.Parse(String, IFormatProvider, DateTimeStyles)Yöntemi ayrıca içindeki tarih ve saat öğelerinin s herhangi bir sırada görünmesine izin verir.The DateTime.Parse(String, IFormatProvider, DateTimeStyles) method also allows the date and time elements in s to appear in any order.

sParametre yalnızca bir zaman ve Hayır içeriyorsa, parametre bayrağı içermiyorsa, geçerli tarih kullanılır style DateTimeStyles.NoCurrentDateDefault , bu durumda varsayılan tarih ( DateTime.Date.MinValue ) kullanılır.If the s parameter contains only a time and no date, the current date is used unless the style parameter includes the DateTimeStyles.NoCurrentDateDefault flag, in which case the default date (DateTime.Date.MinValue) is used. sParametre yalnızca bir tarih ve saat içermiyorsa gece yarısı (00:00:00) kullanılır.If the s parameter contains only a date and no time, midnight (00:00:00) is used. styleParametresi ayrıca s parametrenin baştaki, iç veya sondaki boşluk karakterleri içerip içeremeyeceğini de belirler.The style parameter also determines whether the s parameter can contain leading, inner, or trailing white space characters.

sSaat dilimi bilgisi içermiyorsa, Kind döndürülen DateTime nesnenin özelliği olur DateTimeKind.Unspecified .If s contains no time zone information, the Kind property of the returned DateTime object is DateTimeKind.Unspecified. Bu davranış, DateTimeStyles.AssumeLocal özelliği olan bir değer döndüren bayrağı kullanılarak DateTime Kind DateTimeKind.Local veya DateTimeStyles.AssumeUniversal özelliği olan DateTimeStyles.AdjustToUniversal bir değer döndüren ve bayraklarını kullanarak değiştirilebilir DateTime Kind DateTimeKind.Utc .This behavior can be changed by using the DateTimeStyles.AssumeLocal flag, which returns a DateTime value whose Kind property is DateTimeKind.Local, or by using the DateTimeStyles.AssumeUniversal and DateTimeStyles.AdjustToUniversal flags, which returns a DateTime value whose Kind property is DateTimeKind.Utc. sSaat dilimi bilgisi içeriyorsa, gerekirse saat yerel saate dönüştürülür ve Kind döndürülen DateTime nesnenin özelliği olarak ayarlanır DateTimeKind.Local .If s contains time zone information, the time is converted to local time, if necessary, and the Kind property of the returned DateTime object is set to DateTimeKind.Local. Bu davranış, DateTimeStyles.RoundtripKind Eşgüdümlü Evrensel Saat (UTC) ' i yerel saate dönüştürmeyin ve özelliği olarak ayarlamak için bayrağını kullanarak değiştirilebilir Kind DateTimeKind.Utc .This behavior can be changed by using the DateTimeStyles.RoundtripKind flag to not convert Coordinated Universal Time (UTC) to a local time and to set the Kind property to DateTimeKind.Utc.

formatParametresi, parametresinin gerekli modelini tanımlar s .The format parameter defines the required pattern of the s parameter. Özel tarih ve saat biçimi dizeleri tablosundan bir veya daha fazla özel biçim belirticisinden veya Standart Tarih ve saat biçimi dizeleri tablosundan önceden tanımlanmış bir model tanımlayan tek bir standart biçim belirticisi içerebilir.It can consist of either one or more custom format specifiers from the Custom Date and Time Format Strings table, or a single standard format specifier, which identifies a predefined pattern, from the Standard Date and Time Format Strings table.

Özel biçim düzeninde tarih veya saat ayırıcıları kullanmıyorsanız, parametre için sabit kültür ' i provider ve her bir özel Biçim belirticisinin en geniş formunu kullanın.If you do not use date or time separators in a custom format pattern, use the invariant culture for the provider parameter and the widest form of each custom format specifier. Örneğin, düzende saatleri belirtmek istiyorsanız, dar kapsamlı "H" biçimi yerine daha geniş "HH" biçimini belirtin.For example, if you want to specify hours in the pattern, specify the wider form, "HH", instead of the narrower form, "H".

Not

sAyrıştırma işleminin başarılı olması için tek bir biçime uymasını gerektirmek yerine, DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles) yöntemi çağırabilir ve izin verilen birden çok biçim belirtebilirsiniz.Rather than requiring that s conform to a single format for the parse operation to succeed, you can call the DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles) method and specify multiple permitted formats. Bu, ayrıştırma işleminin başarılı olma olasılığını daha büyük hale getirir.This makes the parse operation more likely to succeed.

stylesParametresi, bir veya daha fazla DateTimeStyles numaralandırmanın, tarafından tanımlanmadığını ve format ' ın içinde görünüp görünmeyeceğini s ve ayrıştırma işleminin tam davranışını denetlemesini belirten bir veya daha fazla üye içerir.The styles parameter includes one or more members of the DateTimeStyles enumeration that determine whether and where white space not defined by format can appear in s and that control the precise behavior of the parse operation. Aşağıdaki tabloda, her bir DateTimeStyles numaralandırma üyesinin yöntemin işlemini nasıl etkilediği açıklanmaktadır ParseExact(String, String, IFormatProvider, DateTimeStyles) .The following table describes how each member of the DateTimeStyles enumeration affects the operation of the ParseExact(String, String, IFormatProvider, DateTimeStyles) method.

DateTimeStyles üyesiDateTimeStyles member DescriptionDescription
AdjustToUniversal sÖğesini ayrıştırır ve gerekırse UTC 'ye dönüştürür.Parses s and, if necessary, converts it to UTC. sBir saat dilimi boşluğu içeriyorsa veya s hiçbir saat dilimi bilgisi içermiyorsa, ancak bayrağını içeriyorsa styles DateTimeStyles.AssumeLocal , yöntem dizeyi AYRıŞTıRıR, ToUniversalTime döndürülen DateTime değeri UTC 'e dönüştürmek için çağırır ve Kind özelliğini olarak ayarlar DateTimeKind.Utc .If s includes a time zone offset, or if s contains no time zone information but styles includes the DateTimeStyles.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. Eğer s UTC 'yi temsil ettiğini gösteriyorsa veya s saat dilimi bilgilerini içermiyorsa styles , ancak DateTimeStyles.AssumeUniversal bayrağını içeriyorsa, yöntem dizeyi ayrıştırır, döndürülen değerde saat dilimi dönüştürmesi yapmaz DateTime ve Kind özelliğini olarak ayarlar DateTimeKind.Utc .If s indicates that it represents UTC, or if s does not contain time zone information but styles includes the DateTimeStyles.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. Diğer durumlarda, bayrağın hiçbir etkisi olmaz.In all other cases, the flag has no effect.
AllowInnerWhite Tarafından tanımlanmayan boşluk format , herhangi bir tarih veya saat öğesi arasında belirebilir.Specifies that white space not defined by format can appear between any individual date or time element.
AllowLeadingWhite Tarafından tanımlanmayan boşluk format , öğesinin başlangıcında görünebilirler s .Specifies that white space not defined by format can appear at the beginning of s.
AllowTrailingWhite Tarafından tanımlanmayan beyaz boşluğun format sonunda görünebilirler s .Specifies that white space not defined by format can appear at the end of s.
AllowWhiteSpaces sTarafından tanımlanmayan öndeki, iç ve sondaki boşluk içerebilir format .Specifies that s may contain leading, inner, and trailing white spaces not defined by format.
AssumeLocal sHiçbir saat dilimi bilgisi yoksa, bunun yerel saati temsil ettiğini kabul ettiğini belirtir.Specifies that if s lacks any time zone information, it is assumed to represent a local time. DateTimeStyles.AdjustToUniversalBayrak mevcut değilse, Kind döndürülen DateTime değerin özelliği olarak ayarlanır DateTimeKind.Local .Unless the DateTimeStyles.AdjustToUniversal flag is present, the Kind property of the returned DateTime value is set to DateTimeKind.Local.
AssumeUniversal sHiçbir saat dilimi bilgisi yoksa UTC 'yi temsil ettiğini belirtir.Specifies that if s lacks any time zone information, it is assumed to represent UTC. DateTimeStyles.AdjustToUniversalBayrak mevcut değilse, yöntem döndürülen DateTime değeri UTC 'den yerel saate dönüştürür ve Kind özelliğini olarak ayarlar DateTimeKind.Local .Unless the DateTimeStyles.AdjustToUniversal flag is present, the method converts the returned DateTime value from UTC to local time and sets its Kind property to DateTimeKind.Local.
NoCurrentDateDefault sTarih bilgisi olmayan süre içeriyorsa, dönüş değerinin tarihi olarak ayarlanır DateTime.MinValue.Date .If s contains time without date information, the date of the return value is set to DateTime.MinValue.Date.
None sParametresi varsayılan değerler kullanılarak ayrıştırılır.The s parameter is parsed using default values. ' De mevcut bir boşluk format olmasına izin verilir.No white space other than that present in format is allowed. sBir tarih bileşeni yoksa, döndürülen DateTime değerin tarihi 1/1/0001 olarak ayarlanır.If s lacks a date component, the date of the returned DateTime value is set to 1/1/0001. sSaat dilimi bilgisi içermiyorsa, Kind döndürülen DateTime nesnenin özelliği olarak ayarlanır DateTimeKind.Unspecified .If s contains no time zone information, the Kind property of the returned DateTime object is set to DateTimeKind.Unspecified. İçinde saat dilimi bilgisi varsa s , saat yerel saate dönüştürülür ve Kind döndürülen DateTime nesnenin özelliği olarak ayarlanır DateTimeKind.Local .If time zone information is present in s, the time is converted to local time and the Kind property of the returned DateTime object is set to DateTimeKind.Local.
RoundtripKind Saat dilimi bilgilerini içeren dizeler için, DateTime özelliği olarak ayarlanmış bir değer tarih ve saatine dönüştürmeyi engellemeye çalışır Kind DateTimeKind.Local .For strings that contain time zone information, tries to prevent the conversion to a DateTime value date and time with its Kind property set to DateTimeKind.Local. Bu bayrak öncelikle UTC saatlerinin yerel saatlere dönüştürülmesini önler.This flag primarily prevents the conversion of UTC times to local times.

İçinde kullanılan belirli tarih ve saat sembolleri ve dizeleri (belirli bir dildeki haftanın günleri adları gibi) s parametresi tarafından tanımlanır provider , çünkü s format bir standart biçim belirleyicisi dizesidir, öğesinin kesin biçimidir.The particular date and time symbols and strings (such as the names of the days of the week in a particular language) used in s are defined by the provider parameter, as is the precise format of s if format is a standard format specifier string. providerParametresi aşağıdakilerden herhangi biri olabilir:The provider parameter can be any of the following:

providerİse null , CultureInfo geçerli kültüre karşılık gelen nesne kullanılır.If provider is null, the CultureInfo object that corresponds to the current culture is used.

Arayanlara Notlar

İçinde, .NET Framework 4.NET Framework 4 ParseExact FormatException Ayrıştırılacak dize bir Hour bileşeni ve anlaşmada olmayan BIR har/PM belirleyicisi içeriyorsa Yöntem bir oluşturur.In the .NET Framework 4.NET Framework 4, the ParseExact method throws a FormatException if the string to be parsed contains an hour component and an AM/PM designator that are not in agreement. .NET Framework 3.5.NET Framework 3.5Ve önceki sürümlerinde, ı/PM göstergesi yok sayılır.In the .NET Framework 3.5.NET Framework 3.5 and earlier versions, the AM/PM designator is ignored.

Ayrıca bkz.

Şunlara uygulanır

ParseExact(String, String[], IFormatProvider, DateTimeStyles)

Tarih ve saatin belirtilen dize gösterimini DateTime , belirtilen biçim dizisini, kültüre özgü biçim bilgilerini ve stili kullanarak eşdeğerine dönüştürür.Converts the specified string representation of a date and time to its DateTime equivalent using the specified array of formats, culture-specific format information, and style. Dize gösteriminin biçimi belirtilen biçimlerden en az biriyle tam olarak eşleşmelidir veya bir özel durum oluşturuldu.The format of the string representation must match at least one of the specified formats exactly or an exception is thrown.

public:
 static DateTime ParseExact(System::String ^ s, cli::array <System::String ^> ^ formats, IFormatProvider ^ provider, System::Globalization::DateTimeStyles style);
public static DateTime ParseExact (string s, string[] formats, IFormatProvider provider, System.Globalization.DateTimeStyles style);
public static DateTime ParseExact (string s, string[] formats, IFormatProvider? provider, System.Globalization.DateTimeStyles style);
static member ParseExact : string * string[] * IFormatProvider * System.Globalization.DateTimeStyles -> DateTime
Public Shared Function ParseExact (s As String, formats As String(), provider As IFormatProvider, style As DateTimeStyles) As DateTime

Parametreler

s
String

Dönüştürülecek bir tarih ve saat içeren bir dize.A string that contains a date and time to convert.

formats
String[]

İzin verilen biçimlerin dizisi s .An array of allowable formats of s. Daha fazla bilgi için, açıklamalar bölümüne bakın.For more information, see the Remarks section.

provider
IFormatProvider

Hakkında kültüre özgü biçim bilgilerini sağlayan bir nesne s .An object that supplies culture-specific format information about s.

style
DateTimeStyles

İzin verilen biçimini gösteren sabit listesi değerlerinin bit düzeyinde birleşimi s .A bitwise combination of enumeration values that indicates the permitted format of s. Belirtmek için tipik bir değer None .A typical value to specify is None.

Döndürülenler

DateTime

, s Ve tarafından belirtildiği gibi, içinde bulunan tarih ve saate eşdeğer bir nesne formats provider style .An object that is equivalent to the date and time contained in s, as specified by formats, provider, and style.

Özel durumlar

s ya formats da null .s or formats is null.

s boş bir dizedir.s is an empty string.

-veya--or- öğesi formats boş bir dizedir.an element of formats is an empty string.

-veya--or- s herhangi bir öğesine karşılık gelen bir tarih ve saat içermez formats .s does not contain a date and time that corresponds to any element of formats.

-veya--or- İçindeki saat bileşeni ve PM/PM göstergesi s kabul etmez.The hour component and the AM/PM designator in s do not agree.

style geçersiz bir değer birleşimi içeriyor DateTimeStyles .style contains an invalid combination of DateTimeStyles values. Örneğin, AssumeLocal ve AssumeUniversal .For example, both AssumeLocal and AssumeUniversal.

Örnekler

Aşağıdaki örnek, bir dizi DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles) olası biçimdeki dizenin başarıyla ayrıştırılabilmesini sağlamak için yöntemini kullanır.The following example uses the DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles) method to ensure that a string in a number of possible formats can be successfully parsed .

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string[] formats= {"M/d/yyyy h:mm:ss tt", "M/d/yyyy h:mm tt",
                         "MM/dd/yyyy hh:mm:ss", "M/d/yyyy h:mm:ss",
                         "M/d/yyyy hh:mm tt", "M/d/yyyy hh tt",
                         "M/d/yyyy h:mm", "M/d/yyyy h:mm",
                         "MM/dd/yyyy hh:mm", "M/dd/yyyy hh:mm",
                         "MM/d/yyyy HH:mm:ss.ffffff" };
      string[] dateStrings = {"5/1/2009 6:32 PM", "05/01/2009 6:32:05 PM",
                              "5/1/2009 6:32:00", "05/01/2009 06:32",
                              "05/01/2009 06:32:00 PM", "05/01/2009 06:32:00",
                              "08/28/2015 16:17:39.125", "08/28/2015 16:17:39.125000" };
      DateTime dateValue;

      foreach (string dateString in dateStrings)
      {
         try {
            dateValue = DateTime.ParseExact(dateString, formats,
                                            new CultureInfo("en-US"),
                                            DateTimeStyles.None);
            Console.WriteLine("Converted '{0}' to {1}.", dateString, dateValue);
         }
         catch (FormatException) {
            Console.WriteLine("Unable to convert '{0}' to a date.", dateString);
         }
      }
   }
}
// The example displays the following output:
//       Converted '5/1/2009 6:32 PM' to 5/1/2009 6:32:00 PM.
//       Converted '05/01/2009 6:32:05 PM' to 5/1/2009 6:32:05 PM.
//       Converted '5/1/2009 6:32:00' to 5/1/2009 6:32:00 AM.
//       Converted '05/01/2009 06:32' to 5/1/2009 6:32:00 AM.
//       Converted '05/01/2009 06:32:00 PM' to 5/1/2009 6:32:00 PM.
//       Converted '05/01/2009 06:32:00' to 5/1/2009 6:32:00 AM.
//       Unable to convert '08/28/2015 16:17:39.125' to a date.
//       Converted '08/28/2015 16:17:39.125000' to 8/28/2015 4:17:39 PM.
Imports System.Globalization

Module Example
   Public Sub Main()
      Dim formats() As String = {"M/d/yyyy h:mm:ss tt", "M/d/yyyy h:mm tt", _
                                 "MM/dd/yyyy hh:mm:ss", "M/d/yyyy h:mm:ss", _
                                 "M/d/yyyy hh:mm tt", "M/d/yyyy hh tt", _
                                 "M/d/yyyy h:mm", "M/d/yyyy h:mm", _
                                 "MM/dd/yyyy hh:mm", "M/dd/yyyy hh:mm",
                                 "MM/d/yyyy HH:mm:ss.ffffff" }
      Dim dateStrings() As String = {"5/1/2009 6:32 PM", "05/01/2009 6:32:05 PM", _
                                     "5/1/2009 6:32:00", "05/01/2009 06:32", _
                                     "05/01/2009 06:32:00 PM", "05/01/2009 06:32:00",
                                     "08/28/2015 16:17:39.125", "08/28/2015 16:17:39.125000" }

      Dim dateValue As DateTime
      
      For Each dateString As String In dateStrings
         Try
            dateValue = DateTime.ParseExact(dateString, formats, _
                                            New CultureInfo("en-US"), _
                                            DateTimeStyles.None)
            Console.WriteLine("Converted '{0}' to {1}.", dateString, dateValue)
         Catch e As FormatException
            Console.WriteLine("Unable to convert '{0}' to a date.", dateString)
         End Try                                               
      Next
   End Sub
End Module
' The example displays the following output:
'       Converted '5/1/2009 6:32 PM' to 5/1/2009 6:32:00 PM.
'       Converted '05/01/2009 6:32:05 PM' to 5/1/2009 6:32:05 PM.
'       Converted '5/1/2009 6:32:00' to 5/1/2009 6:32:00 AM.
'       Converted '05/01/2009 06:32' to 5/1/2009 6:32:00 AM.
'       Converted '05/01/2009 06:32:00 PM' to 5/1/2009 6:32:00 PM.
'       Converted '05/01/2009 06:32:00' to 5/1/2009 6:32:00 AM.
'       Unable to convert '08/28/2015 16:17:39.125' to a date.
'       Converted '08/28/2015 16:17:39.125000' to 8/28/2015 4:17:39 PM.

Açıklamalar

DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles)Yöntemi, parametreye atanan desenlerden biriyle eşleşen bir tarihin dize gösterimini ayrıştırır formats .The DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles) method parses the string representation of a date that matches any one of the patterns assigned to the formats parameter. Dize, s parametresi tarafından tanımlanan çeşitlemelerle Bu desenlerden herhangi biriyle eşleşmezse styles , yöntemi bir oluşturur FormatException .If the string s does not match any one of these patterns with any of the variations defined by the styles parameter, the method throws a FormatException. sTek bir biçimlendirme deseni yerine birden çok biçimlendirme deseniyle karşılaştırılmadan, bu aşırı yükleme yöntemiyle aynı şekilde davranır DateTime.ParseExact(String, String, IFormatProvider, DateTimeStyles) .Aside from comparing s to multiple formatting patterns, rather than to a single formatting pattern, this overload behaves identically to the DateTime.ParseExact(String, String, IFormatProvider, DateTimeStyles) method.

sParametresi ayrıştırılacak tarihi ve saati içerir.The s parameter contains the date and time to parse. sParametre yalnızca bir zaman ve Hayır içeriyorsa, parametre bayrağı içermiyorsa, geçerli tarih kullanılır style DateTimeStyles.NoCurrentDateDefault , bu durumda varsayılan tarih ( DateTime.Date.MinValue ) kullanılır.If the s parameter contains only a time and no date, the current date is used unless the style parameter includes the DateTimeStyles.NoCurrentDateDefault flag, in which case the default date (DateTime.Date.MinValue) is used. sParametre yalnızca bir tarih ve saat içermiyorsa gece yarısı (00:00:00) kullanılır.If the s parameter contains only a date and no time, midnight (00:00:00) is used. styleParametresi ayrıca s parametresinin, içindeki biçim dizelerinden biri tarafından izin verilen önünde, iç veya sondaki boşluk karakterleri içerip içeremeyeceğini de belirler formats .The style parameter also determines whether the s parameter can contain leading, inner, or trailing white space characters other than those permitted by one of the format strings in formats.

sSaat dilimi bilgisi içermiyorsa, Kind döndürülen DateTime nesnenin özelliği olur DateTimeKind.Unspecified .If s contains no time zone information, the Kind property of the returned DateTime object is DateTimeKind.Unspecified. Bu davranış, DateTimeStyles.AssumeLocal özelliği olan bir değer döndüren bayrağı kullanılarak DateTime Kind DateTimeKind.Local veya DateTimeStyles.AssumeUniversal özelliği olan DateTimeStyles.AdjustToUniversal bir değer döndüren ve bayraklarını kullanarak değiştirilebilir DateTime Kind DateTimeKind.Utc .This behavior can be changed by using the DateTimeStyles.AssumeLocal flag, which returns a DateTime value whose Kind property is DateTimeKind.Local, or by using the DateTimeStyles.AssumeUniversal and DateTimeStyles.AdjustToUniversal flags, which returns a DateTime value whose Kind property is DateTimeKind.Utc. sSaat dilimi bilgisi içeriyorsa, gerekirse saat yerel saate dönüştürülür ve Kind döndürülen DateTime nesnenin özelliği olarak ayarlanır DateTimeKind.Local .If s contains time zone information, the time is converted to local time, if necessary, and the Kind property of the returned DateTime object is set to DateTimeKind.Local. Bu davranış, DateTimeStyles.RoundtripKind Eşgüdümlü Evrensel Saat (UTC) ' i yerel saate dönüştürmüyor ve özelliğini olarak ayarlayamayan bayrak kullanılarak değiştirilebilir Kind DateTimeKind.Utc .This behavior can be changed by using the DateTimeStyles.RoundtripKind flag to not convert Coordinated Universal Time (UTC) to a local time and set the Kind property to DateTimeKind.Utc.

formatsParametresi bir desen dizisi içerir, bunlardan biri, s ayrıştırma işleminin başarılı olması durumunda tam olarak eşleşmesi gerekir.The formats parameter contains an array of patterns, one of which s must match exactly if the parse operation is to succeed. Parametresindeki desenler, formats özel tarih ve saat biçimi dizeleri tablosundan bir veya daha fazla özel biçim belirticisinden veya Standart Tarih ve saat biçimi dizeleri tablosundan önceden tanımlanmış bir deseni tanımlayan tek bir standart biçim belirticisinden oluşur.The patterns in the formats parameter consists of one or more custom format specifiers from the Custom Date and Time Format Strings table, or a single standard format specifier, which identifies a predefined pattern, from the Standard Date and Time Format Strings table.

Özel biçim düzeninde tarih veya saat ayırıcıları kullanmıyorsanız, parametre için sabit kültür ' i provider ve her bir özel Biçim belirticisinin en geniş formunu kullanın.If you do not use date or time separators in a custom format pattern, use the invariant culture for the provider parameter and the widest form of each custom format specifier. Örneğin, düzende saatleri belirtmek istiyorsanız, dar kapsamlı "H" biçimi yerine daha geniş "HH" biçimini belirtin.For example, if you want to specify hours in the pattern, specify the wider form, "HH", instead of the narrower form, "H".

stylesParametresi, bir veya daha fazla DateTimeStyles numaralandırmanın, tarafından tanımlanmadığını ve format ' ın içinde görünüp görünmeyeceğini s ve ayrıştırma işleminin tam davranışını denetlemesini belirten bir veya daha fazla üye içerir.The styles parameter includes one or more members of the DateTimeStyles enumeration that determine whether and where white space not defined by format can appear in s and that control the precise behavior of the parse operation. Aşağıdaki tabloda, her bir DateTimeStyles numaralandırma üyesinin yöntemin işlemini nasıl etkilediği açıklanmaktadır ParseExact(String, String, IFormatProvider, DateTimeStyles) .The following table describes how each member of the DateTimeStyles enumeration affects the operation of the ParseExact(String, String, IFormatProvider, DateTimeStyles) method.

DateTimeStyles üyesiDateTimeStyles member DescriptionDescription
AdjustToUniversal sÖğesini ayrıştırır ve gerekırse UTC 'ye dönüştürür.Parses s and, if necessary, converts it to UTC. sBir saat dilimi boşluğu içeriyorsa veya s hiçbir saat dilimi bilgisi içermiyorsa, ancak bayrağını içeriyorsa styles DateTimeStyles.AssumeLocal , yöntem dizeyi AYRıŞTıRıR, ToUniversalTime döndürülen DateTime değeri UTC 'e dönüştürmek için çağırır ve Kind özelliğini olarak ayarlar DateTimeKind.Utc .If s includes a time zone offset, or if s contains no time zone information but styles includes the DateTimeStyles.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. Eğer s UTC 'yi temsil ettiğini gösteriyorsa veya s saat dilimi bilgilerini içermiyorsa styles , ancak DateTimeStyles.AssumeUniversal bayrağını içeriyorsa, yöntem dizeyi ayrıştırır, döndürülen değerde saat dilimi dönüştürmesi yapmaz DateTime ve Kind özelliğini olarak ayarlar DateTimeKind.Utc .If s indicates that it represents UTC, or if s does not contain time zone information but styles includes the DateTimeStyles.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. Diğer durumlarda, bayrağın hiçbir etkisi olmaz.In all other cases, the flag has no effect.
AllowInnerWhite Tarafından tanımlanmayan boşluk format , herhangi bir tarih veya saat öğesi arasında belirebilir.Specifies that white space not defined by format can appear between any individual date or time element.
AllowLeadingWhite Tarafından tanımlanmayan boşluk format , öğesinin başlangıcında görünebilirler s .Specifies that white space not defined by format can appear at the beginning of s.
AllowTrailingWhite Tarafından tanımlanmayan beyaz boşluğun format sonunda görünebilirler s .Specifies that white space not defined by format can appear at the end of s.
AllowWhiteSpaces sTarafından tanımlanmayan öndeki, iç ve sondaki boşluk içerebilir format .Specifies that s may contain leading, inner, and trailing white spaces not defined by format.
AssumeLocal sHiçbir saat dilimi bilgisi yoksa, bunun yerel saati temsil ettiğini kabul ettiğini belirtir.Specifies that if s lacks any time zone information, it is assumed to represent a local time. DateTimeStyles.AdjustToUniversalBayrak mevcut değilse, Kind döndürülen DateTime değerin özelliği olarak ayarlanır DateTimeKind.Local .Unless the DateTimeStyles.AdjustToUniversal flag is present, the Kind property of the returned DateTime value is set to DateTimeKind.Local.
AssumeUniversal sHiçbir saat dilimi bilgisi yoksa UTC 'yi temsil ettiğini belirtir.Specifies that if s lacks any time zone information, it is assumed to represent UTC. DateTimeStyles.AdjustToUniversalBayrak mevcut değilse, yöntem döndürülen DateTime değeri UTC 'den yerel saate dönüştürür ve Kind özelliğini olarak ayarlar DateTimeKind.Local .Unless the DateTimeStyles.AdjustToUniversal flag is present, the method converts the returned DateTime value from UTC to local time and sets its Kind property to DateTimeKind.Local.
NoCurrentDateDefault sTarih bilgisi olmayan süre içeriyorsa, dönüş değerinin tarihi olarak ayarlanır DateTime.MinValue.Date .If s contains time without date information, the date of the return value is set to DateTime.MinValue.Date.
None sParametresi varsayılan değerler kullanılarak ayrıştırılır.The s parameter is parsed using default values. ' De mevcut bir boşluk format olmasına izin verilir.No white space other than that present in format is allowed. sBir tarih bileşeni yoksa, döndürülen DateTime değerin tarihi 1/1/0001 olarak ayarlanır.If s lacks a date component, the date of the returned DateTime value is set to 1/1/0001. sSaat dilimi bilgisi içermiyorsa, Kind döndürülen DateTime nesnenin özelliği olarak ayarlanır DateTimeKind.Unspecified .If s contains no time zone information, the Kind property of the returned DateTime object is set to DateTimeKind.Unspecified. İçinde saat dilimi bilgisi varsa s , saat yerel saate dönüştürülür ve Kind döndürülen DateTime nesnenin özelliği olarak ayarlanır DateTimeKind.Local .If time zone information is present in s, the time is converted to local time and the Kind property of the returned DateTime object is set to DateTimeKind.Local.
RoundtripKind Saat dilimi bilgilerini içeren dizeler için, özelliği olarak ayarlanmış bir tarih ve saate dönüştürmeyi engellemeye çalışır Kind DateTimeKind.Local .For strings that contain time zone information, tries to prevent the conversion to a date and time with its Kind property set to DateTimeKind.Local. Bu bayrak öncelikle UTC saatlerinin yerel saatlere dönüştürülmesini önler.This flag primarily prevents the conversion of UTC times to local times.

İçinde kullanılan belirli tarih ve saat sembolleri ve dizeleri (belirli bir dildeki haftanın günleri adları gibi) s parametresi tarafından tanımlanır provider , çünkü s format bir standart biçim belirleyicisi dizesidir, öğesinin kesin biçimidir.The particular date and time symbols and strings (such as the names of the days of the week in a particular language) used in s are defined by the provider parameter, as is the precise format of s if format is a standard format specifier string. providerParametresi aşağıdakilerden herhangi biri olabilir:The provider parameter can be any of the following:

providerİse null , CultureInfo geçerli kültüre karşılık gelen nesne kullanılır.If provider is null, the CultureInfo object that corresponds to the current culture is used.

Arayanlara Notlar

İçinde, .NET Framework 4.NET Framework 4 ParseExact FormatException Ayrıştırılacak dize bir Hour bileşeni ve anlaşmada olmayan BIR har/PM belirleyicisi içeriyorsa Yöntem bir oluşturur.In the .NET Framework 4.NET Framework 4, the ParseExact method throws a FormatException if the string to be parsed contains an hour component and an AM/PM designator that are not in agreement. .NET Framework 3.5.NET Framework 3.5Ve önceki sürümlerinde, ı/PM göstergesi yok sayılır.In the .NET Framework 3.5.NET Framework 3.5 and earlier versions, the AM/PM designator is ignored.

Ayrıca bkz.

Şunlara uygulanır