Bagikan melalui


DateTime.TryParseExact Metode

Definisi

Mengonversi representasi string yang ditentukan dari tanggal dan waktu ke DateTime setara. Format representasi string harus sama persis dengan format yang ditentukan. Metode mengembalikan nilai yang menunjukkan apakah konversi berhasil.

Overload

TryParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime)

Mengonversi representasi rentang tanggal dan waktu yang ditentukan ke DateTime setara menggunakan format yang ditentukan, informasi format khusus budaya, dan gaya. Format representasi string harus sama persis dengan format yang ditentukan. Metode mengembalikan nilai yang menunjukkan apakah konversi berhasil.

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

Mengonversi rentang karakter yang ditentukan dari tanggal dan waktu ke DateTime yang setara dan mengembalikan nilai yang menunjukkan apakah konversi berhasil.

TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime)

Mengonversi representasi string yang ditentukan dari tanggal dan waktu ke DateTime setara menggunakan format yang ditentukan, informasi format khusus budaya, dan gaya. Format representasi string harus sama persis dengan format yang ditentukan. Metode mengembalikan nilai yang menunjukkan apakah konversi berhasil.

TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime)

Mengonversi representasi string yang ditentukan dari tanggal dan waktu ke DateTime setara menggunakan array format yang ditentukan, informasi format khusus budaya, dan gaya. Format representasi string harus cocok dengan setidaknya salah satu format yang ditentukan dengan tepat. Metode mengembalikan nilai yang menunjukkan apakah konversi berhasil.

Keterangan

Penting

Era dalam kalender Jepang didasarkan pada pemerintahan kaisar dan oleh karena itu diharapkan untuk berubah. Misalnya, 1 Mei 2019 menandai awal era Reiwa di JapaneseCalendar dan JapaneseLunisolarCalendar. Perubahan era seperti itu memengaruhi semua aplikasi yang menggunakan kalender ini. Untuk informasi selengkapnya dan untuk menentukan apakah aplikasi Anda terpengaruh, lihat Menangani era baru di kalender Jepang di .NET. Untuk informasi tentang menguji aplikasi Anda pada sistem Windows untuk memastikan kesiapan mereka untuk perubahan era, lihat Menyiapkan aplikasi Anda untuk perubahan era Jepang. Untuk fitur di .NET yang mendukung kalender dengan beberapa era dan untuk praktik terbaik saat bekerja dengan kalender yang mendukung beberapa era, lihat Bekerja dengan era.

TryParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTime)

Sumber:
DateTime.cs
Sumber:
DateTime.cs
Sumber:
DateTime.cs

Mengonversi representasi rentang tanggal dan waktu yang ditentukan ke DateTime setara menggunakan format yang ditentukan, informasi format khusus budaya, dan gaya. Format representasi string harus sama persis dengan format yang ditentukan. Metode mengembalikan nilai yang menunjukkan apakah konversi berhasil.

public:
 static bool TryParseExact(ReadOnlySpan<char> s, ReadOnlySpan<char> format, IFormatProvider ^ provider, System::Globalization::DateTimeStyles style, [Runtime::InteropServices::Out] DateTime % result);
public static bool TryParseExact (ReadOnlySpan<char> s, ReadOnlySpan<char> format, IFormatProvider? provider, System.Globalization.DateTimeStyles style, out DateTime result);
public static bool TryParseExact (ReadOnlySpan<char> s, ReadOnlySpan<char> format, IFormatProvider provider, System.Globalization.DateTimeStyles style, out DateTime result);
static member TryParseExact : ReadOnlySpan<char> * ReadOnlySpan<char> * IFormatProvider * System.Globalization.DateTimeStyles * DateTime -> bool
Public Shared Function TryParseExact (s As ReadOnlySpan(Of Char), format As ReadOnlySpan(Of Char), provider As IFormatProvider, style As DateTimeStyles, ByRef result As DateTime) As Boolean

Parameter

s
ReadOnlySpan<Char>

Rentang yang berisi karakter yang mewakili tanggal dan waktu untuk dikonversi.

format
ReadOnlySpan<Char>

Format syang diperlukan.

provider
IFormatProvider

Objek yang memasok informasi pemformatan khusus budaya tentang s.

style
DateTimeStyles

Kombinasi bitwise dari satu atau beberapa nilai enumerasi yang menunjukkan format syang diizinkan.

result
DateTime

Ketika metode ini kembali, berisi nilai DateTime yang setara dengan tanggal dan waktu yang terkandung dalam s, jika konversi berhasil, atau DateTime.MinValue jika konversi gagal. Konversi gagal jika parameter s atau formatnull, adalah string kosong, atau tidak berisi tanggal dan waktu yang sesuai dengan pola yang ditentukan dalam format. Parameter ini diteruskan tanpa diinisialisasi.

Mengembalikan

true jika s berhasil dikonversi; jika tidak, false.

Berlaku untuk

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

Sumber:
DateTime.cs
Sumber:
DateTime.cs
Sumber:
DateTime.cs

Mengonversi rentang karakter yang ditentukan dari tanggal dan waktu ke DateTime yang setara dan mengembalikan nilai yang menunjukkan apakah konversi berhasil.

public:
 static bool TryParseExact(ReadOnlySpan<char> s, cli::array <System::String ^> ^ formats, IFormatProvider ^ provider, System::Globalization::DateTimeStyles style, [Runtime::InteropServices::Out] DateTime % result);
public static bool TryParseExact (ReadOnlySpan<char> s, string?[]? formats, IFormatProvider? provider, System.Globalization.DateTimeStyles style, out DateTime result);
public static bool TryParseExact (ReadOnlySpan<char> s, string[] formats, IFormatProvider provider, System.Globalization.DateTimeStyles style, out DateTime result);
static member TryParseExact : ReadOnlySpan<char> * string[] * IFormatProvider * System.Globalization.DateTimeStyles * DateTime -> bool
Public Shared Function TryParseExact (s As ReadOnlySpan(Of Char), formats As String(), provider As IFormatProvider, style As DateTimeStyles, ByRef result As DateTime) As Boolean

Parameter

s
ReadOnlySpan<Char>

Rentang yang berisi string untuk diurai.

formats
String[]

Array format syang diizinkan.

provider
IFormatProvider

Objek yang memasok informasi pemformatan khusus budaya tentang s.

style
DateTimeStyles

Kombinasi bitwise dari nilai enumerasi yang menentukan cara menginterpretasikan tanggal yang diurai sehubungan dengan zona waktu saat ini atau tanggal saat ini. Nilai umum yang akan ditentukan adalah None.

result
DateTime

Ketika metode ini kembali, berisi nilai DateTime yang setara dengan tanggal dan waktu yang terkandung dalam s, jika konversi berhasil, atau DateTime.MinValue jika konversi gagal. Konversi gagal jika parameter snull, Empty, atau tidak berisi representasi string yang valid dari tanggal dan waktu. Parameter ini diteruskan tanpa diinisialisasi.

Mengembalikan

true jika parameter s berhasil dikonversi; jika tidak, false.

Berlaku untuk

TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime)

Sumber:
DateTime.cs
Sumber:
DateTime.cs
Sumber:
DateTime.cs

Mengonversi representasi string yang ditentukan dari tanggal dan waktu ke DateTime setara menggunakan format yang ditentukan, informasi format khusus budaya, dan gaya. Format representasi string harus sama persis dengan format yang ditentukan. Metode mengembalikan nilai yang menunjukkan apakah konversi berhasil.

public:
 static bool TryParseExact(System::String ^ s, System::String ^ format, IFormatProvider ^ provider, System::Globalization::DateTimeStyles style, [Runtime::InteropServices::Out] DateTime % result);
public static bool TryParseExact (string s, string format, IFormatProvider provider, System.Globalization.DateTimeStyles style, out DateTime result);
public static bool TryParseExact (string? s, string? format, IFormatProvider? provider, System.Globalization.DateTimeStyles style, out DateTime result);
static member TryParseExact : string * string * IFormatProvider * System.Globalization.DateTimeStyles * DateTime -> bool
Public Shared Function TryParseExact (s As String, format As String, provider As IFormatProvider, style As DateTimeStyles, ByRef result As DateTime) As Boolean

Parameter

s
String

String yang berisi tanggal dan waktu untuk dikonversi.

format
String

Format syang diperlukan.

provider
IFormatProvider

Objek yang memasok informasi pemformatan khusus budaya tentang s.

style
DateTimeStyles

Kombinasi bitwise dari satu atau beberapa nilai enumerasi yang menunjukkan format syang diizinkan.

result
DateTime

Ketika metode ini kembali, berisi nilai DateTime yang setara dengan tanggal dan waktu yang terkandung dalam s, jika konversi berhasil, atau DateTime.MinValue jika konversi gagal. Konversi gagal jika parameter s atau formatnull, adalah string kosong, atau tidak berisi tanggal dan waktu yang sesuai dengan pola yang ditentukan dalam format. Parameter ini diteruskan tanpa diinisialisasi.

Mengembalikan

true jika s berhasil dikonversi; jika tidak, false.

Pengecualian

style bukan nilai DateTimeStyles yang valid.

-atau-

style berisi kombinasi nilai DateTimeStyles yang tidak valid (misalnya, AssumeLocal dan AssumeUniversal).

Contoh

Contoh berikut menunjukkan metode DateTime.TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime). Perhatikan bahwa string " 5/01/2009 8:30 AM" tidak dapat diurai dengan sukses ketika parameter styles sama dengan DateTimeStyles.None karena spasi di depan tidak diizinkan oleh format. Selain itu, string "5/01/2009 09:00" tidak dapat diurai dengan sukses dengan format "MM/dd/yyyyhh:mm" karena string tanggal tidak mendahului nomor bulan dengan nol di depannya, seperti yang format butuhkan.

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";
      if (DateTime.TryParseExact(dateString, "g", enUS,
                                 DateTimeStyles.None, out dateValue))
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
                           dateValue.Kind);
      else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString);

      // Allow a leading space in the date string.
      if (DateTime.TryParseExact(dateString, "g", enUS,
                                 DateTimeStyles.AllowLeadingWhite, out dateValue))
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
                           dateValue.Kind);
      else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString);

      // Use custom formats with M and MM.
      dateString = "5/01/2009 09:00";
      if (DateTime.TryParseExact(dateString, "M/dd/yyyy hh:mm", enUS,
                                 DateTimeStyles.None, out dateValue))
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
                           dateValue.Kind);
      else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString);

      // Allow a leading space in the date string.
      if (DateTime.TryParseExact(dateString, "MM/dd/yyyy hh:mm", enUS,
                              DateTimeStyles.None, out dateValue))
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
                           dateValue.Kind);
      else
         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";
      if (DateTime.TryParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS,
                              DateTimeStyles.None, out dateValue))
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
                           dateValue.Kind);
      else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString);

      // Allow a leading space in the date string.
      if (DateTime.TryParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS,
                              DateTimeStyles.AdjustToUniversal, out dateValue))
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
                           dateValue.Kind);
      else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString);

      // Parse a string representing UTC.
      dateString = "2008-06-11T16:11:20.0904778Z";
      if (DateTime.TryParseExact(dateString, "o", CultureInfo.InvariantCulture,
                                     DateTimeStyles.None, out dateValue))
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
                           dateValue.Kind);
      else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString);

      if (DateTime.TryParseExact(dateString, "o", CultureInfo.InvariantCulture,
                                 DateTimeStyles.RoundtripKind, out dateValue))
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
                           dateValue.Kind);
      else
         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).
open System
open System.Globalization

[<EntryPoint>]
let main _ =
    let enUS = CultureInfo "en-US"

    // Parse date with no style flags.
    let dateString = " 5/01/2009 8:30 AM"
    match DateTime.TryParseExact(dateString, "g", enUS, DateTimeStyles.None) with
    | true, dateValue ->
        printfn $"Converted '{dateString}' to {dateValue} ({dateValue.Kind})."              
    | _ ->
        printfn $"'{dateString}' is not in an acceptable format."

    // Allow a leading space in the date string.
    match DateTime.TryParseExact(dateString, "g", enUS, DateTimeStyles.AllowLeadingWhite) with
    | true, dateValue ->
        printfn $"Converted '{dateString}' to {dateValue} ({dateValue.Kind})."
    | _ ->
        printfn $"'{dateString}' is not in an acceptable format."

    // Use custom formats with M and MM.
    let dateString = "5/01/2009 09:00"
    match DateTime.TryParseExact(dateString, "M/dd/yyyy hh:mm", enUS, DateTimeStyles.None) with
    | true, dateValue ->
        printfn $"Converted '{dateString}' to {dateValue} ({dateValue.Kind})."
    | _ ->
        printfn $"'{dateString}' is not in an acceptable format."

    // Allow a leading space in the date string.
    match DateTime.TryParseExact(dateString, "MM/dd/yyyy hh:mm", enUS, DateTimeStyles.None) with
    | true, dateValue ->
        printfn $"Converted '{dateString}' to {dateValue} ({dateValue.Kind})."
    | _ ->
        printfn $"'{dateString}' is not in an acceptable format."

    // Parse a string with time zone information.
    let dateString = "05/01/2009 01:30:42 PM -05:00"
    match DateTime.TryParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS, DateTimeStyles.None) with
    | true, dateValue ->
        printfn $"Converted '{dateString}' to {dateValue} ({dateValue.Kind})."
    | _ ->
        printfn $"'{dateString}' is not in an acceptable format."

    // Allow a leading space in the date string.
    match DateTime.TryParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS, DateTimeStyles.AdjustToUniversal) with
    | true, dateValue ->
        printfn $"Converted '{dateString}' to {dateValue} ({dateValue.Kind})."
    | _ ->
        printfn $"'{dateString}' is not in an acceptable format."

    // Parse a string representing UTC.
    let dateString = "2008-06-11T16:11:20.0904778Z"
    match DateTime.TryParseExact(dateString, "o", CultureInfo.InvariantCulture, DateTimeStyles.None) with
    | true, dateValue ->
        printfn $"Converted '{dateString}' to {dateValue} ({dateValue.Kind})."
    | _ ->
        printfn $"'{dateString}' is not in an acceptable format."

    match DateTime.TryParseExact(dateString, "o", CultureInfo.InvariantCulture, DateTimeStyles.RoundtripKind) with
    | true, dateValue ->
        printfn $"Converted '{dateString}' to {dateValue} ({dateValue.Kind})."
    | _ ->
        printfn $"'{dateString}' is not in an acceptable format."

    0

    // 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

Public 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"
      If Date.TryParseExact(dateString, "g", enUS, _
                            DateTimeStyles.None, dateValue) Then
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
                           dateValue.Kind)
      Else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
      End If
      ' Allow a leading space in the date string.
      If Date.TryParseExact(dateString, "g", enUS, _
                            DateTimeStyles.AllowLeadingWhite, dateValue) Then
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
                           dateValue.Kind)
      Else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
      End If
      
      ' Use custom formats with M and MM.
      dateString = "5/01/2009 09:00"
      If Date.TryParseExact(dateString, "M/dd/yyyy hh:mm", enUS, _
                            DateTimeStyles.None, dateValue) Then
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
                           dateValue.Kind)
      Else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
      End If
      ' Allow a leading space in the date string.
      If Date.TryParseExact(dateString, "MM/dd/yyyy hh:mm", enUS, _
                            DateTimeStyles.None, dateValue) Then
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
                           dateValue.Kind)
      Else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
      End If

      ' Parse a string with time zone information.
      dateString = "05/01/2009 01:30:42 PM -05:00" 
      If Date.TryParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS, _
                            DateTimeStyles.None, dateValue) Then
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
                           dateValue.Kind)
      Else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
      End If
      ' Allow a leading space in the date string.
      If Date.TryParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS, _
                            DateTimeStyles.AdjustToUniversal, dateValue) Then
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
                           dateValue.Kind)
      Else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
      End If
           
      ' Parse a string representing UTC.
      dateString = "2008-06-11T16:11:20.0904778Z"
      If Date.TryParseExact(dateString, "o", CultureInfo.InvariantCulture, _
                                     DateTimeStyles.None, dateValue) Then
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
                           dateValue.Kind)
      Else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
      End If
      
      If Date.TryParseExact(dateString, "o", CultureInfo.InvariantCulture, _
                            DateTimeStyles.RoundtripKind, dateValue) Then
         Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
                           dateValue.Kind)
      Else
         Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
      End If
   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).

Keterangan

Metode DateTime.TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) mengurai representasi string tanggal, yang harus dalam format yang ditentukan oleh parameter format. Ini mirip dengan metode DateTime.ParseExact(String, String, IFormatProvider, DateTimeStyles), kecuali bahwa metode TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) tidak melemparkan pengecualian jika konversi gagal.

Parameter s berisi tanggal dan waktu untuk mengurai dan harus dalam format yang ditentukan oleh parameter format. Jika elemen tanggal, waktu, dan zona waktu ada di s, elemen tersebut juga harus muncul dalam urutan yang ditentukan oleh format. Jika format mendefinisikan tanggal tanpa elemen waktu dan operasi penguraian berhasil, nilai DateTime yang dihasilkan memiliki waktu tengah malam (00:00:00). Jika format menentukan waktu tanpa elemen tanggal dan operasi penguraian berhasil, nilai DateTime yang dihasilkan secara default memiliki tanggal DateTime.Now.Date, atau memiliki tanggal DateTime.MinValue.Date jika styles menyertakan bendera DateTimeStyles.NoCurrentDateDefault. Parameter style menentukan apakah parameter s dapat berisi karakter spasi putih di depan, dalam, atau di belakang.

Jika s tidak berisi informasi zona waktu, properti Kind objek DateTime yang dikembalikan DateTimeKind.Unspecified. Perilaku ini dapat diubah dengan menggunakan bendera DateTimeStyles.AssumeLocal, yang mengembalikan nilai DateTime yang properti Kind nya DateTimeKind.Local, atau dengan menggunakan bendera DateTimeStyles.AssumeUniversal dan DateTimeStyles.AdjustToUniversal, yang mengembalikan nilai DateTime yang properti Kind-nya DateTimeKind.Utc. Jika s berisi informasi zona waktu, waktu dikonversi ke waktu lokal, jika perlu, dan properti Kind objek DateTime yang dikembalikan diatur ke DateTimeKind.Local. Perilaku ini dapat diubah dengan menggunakan bendera DateTimeStyles.RoundtripKind untuk tidak mengonversi Waktu Universal Terkoordinasi (UTC) ke waktu lokal dan mengatur properti Kind ke DateTimeKind.Utc.

Parameter format berisi pola yang sesuai dengan format parameter s yang diharapkan. Pola dalam parameter terdiri dari satu atau beberapa penentu format kustom dari tabel String Format Tanggal dan Waktu Kustom , atau penentu format standar tunggal, yang mengidentifikasi pola yang telah ditentukan sebelumnya, dari tabel String Format Tanggal dan Waktu Standar.

Jika Anda tidak menggunakan pemisah tanggal atau waktu dalam pola format kustom, gunakan budaya invarian untuk parameter provider dan bentuk terluas dari setiap penentu format kustom. Misalnya, jika Anda ingin menentukan jam dalam pola, tentukan bentuk yang lebih luas, "HH", alih-alih bentuk yang lebih sempit, "H".

Nota

Daripada mengharuskan s tersebut sesuai dengan satu format agar operasi penguraian berhasil, Anda dapat memanggil metode DateTime.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) dan menentukan beberapa format yang diizinkan. Hal ini membuat operasi penguraian lebih mungkin berhasil.

Simbol dan string tanggal dan waktu tertentu (seperti nama hari dalam seminggu dalam bahasa tertentu) yang digunakan dalam s didefinisikan oleh parameter provider, seperti format s yang tepat jika format adalah string penentu format standar. Parameter provider dapat berupa salah satu hal berikut:

Jika providernull, objek CultureInfo yang sesuai dengan budaya saat ini digunakan.

Parameter styles mencakup satu atau beberapa anggota enumerasi DateTimeStyles yang menentukan apakah dan di mana ruang putih yang tidak ditentukan oleh format dapat muncul di s dan yang mengontrol perilaku yang tepat dari operasi penguraian. Tabel berikut menjelaskan bagaimana setiap anggota enumerasi DateTimeStyles memengaruhi operasi metode TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime).

Anggota DateTimeStyles Deskripsi
AdjustToUniversal Mengurai s dan, jika perlu, mengonversinya ke UTC. Jika s menyertakan offset zona waktu, atau jika s tidak berisi informasi zona waktu tetapi styles menyertakan bendera DateTimeStyles.AssumeLocal, metode mengurai string, memanggil ToUniversalTime untuk mengonversi nilai DateTime yang dikembalikan ke UTC, dan mengatur properti Kind ke DateTimeKind.Utc. Jika s menunjukkan bahwa itu mewakili UTC, atau jika s tidak berisi informasi zona waktu tetapi styles menyertakan bendera DateTimeStyles.AssumeUniversal, metode mengurai string, tidak melakukan konversi zona waktu pada nilai DateTime yang dikembalikan, dan mengatur properti Kind ke DateTimeKind.Utc. Dalam semua kasus lain, bendera tidak berpengaruh.
AllowInnerWhite Menentukan bahwa spasi kosong yang tidak ditentukan oleh format dapat muncul di antara elemen tanggal atau waktu individual.
AllowLeadingWhite Menentukan bahwa spasi kosong yang tidak ditentukan oleh format dapat muncul di awal s.
AllowTrailingWhite Menentukan bahwa spasi kosong yang tidak ditentukan oleh format dapat muncul di akhir s.
AllowWhiteSpaces Menentukan bahwa s mungkin berisi spasi putih awal, dalam, dan akhir yang tidak ditentukan oleh format.
AssumeLocal Menentukan bahwa jika s tidak memiliki informasi zona waktu apa pun, diasumsikan mewakili waktu lokal. Kecuali bendera DateTimeStyles.AdjustToUniversal ada, properti Kind dari nilai DateTime yang dikembalikan diatur ke DateTimeKind.Local.
AssumeUniversal Menentukan bahwa jika s tidak memiliki informasi zona waktu apa pun, diasumsikan mewakili UTC. Kecuali bendera DateTimeStyles.AdjustToUniversal ada, metode mengonversi nilai DateTime yang dikembalikan dari UTC ke waktu lokal dan mengatur properti Kind ke DateTimeKind.Local.
NoCurrentDateDefault Jika s berisi waktu tanpa informasi tanggal, tanggal nilai pengembalian diatur ke DateTime.MinValue.Date.
None Parameter s diurai menggunakan nilai default. Tidak ada spasi kosong selain yang ada di format diizinkan. Jika s tidak memiliki komponen tanggal, tanggal nilai DateTime yang dikembalikan diatur ke 1/1/0001. Jika s tidak berisi informasi zona waktu, properti Kind objek DateTime yang dikembalikan diatur ke DateTimeKind.Unspecified. Jika informasi zona waktu ada di s, waktu dikonversi ke waktu lokal dan properti Kind objek DateTime yang dikembalikan diatur ke DateTimeKind.Local.
RoundtripKind Untuk string yang berisi informasi zona waktu, coba cegah konversi ke nilai DateTime dengan properti Kind diatur ke DateTimeKind.Local. Bendera ini terutama mencegah konversi waktu UTC ke waktu lokal.

Catatan Bagi Pemanggil

Dalam .NET Framework 4, metode TryParseExact mengembalikan false jika string yang akan diurai berisi komponen jam dan penunjuk AM/PM yang tidak dalam perjanjian. Dalam .NET Framework 3.5 dan versi yang lebih lama, penunjuk AM/PM diabaikan.

Lihat juga

Berlaku untuk

TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime)

Sumber:
DateTime.cs
Sumber:
DateTime.cs
Sumber:
DateTime.cs

Mengonversi representasi string yang ditentukan dari tanggal dan waktu ke DateTime setara menggunakan array format yang ditentukan, informasi format khusus budaya, dan gaya. Format representasi string harus cocok dengan setidaknya salah satu format yang ditentukan dengan tepat. Metode mengembalikan nilai yang menunjukkan apakah konversi berhasil.

public:
 static bool TryParseExact(System::String ^ s, cli::array <System::String ^> ^ formats, IFormatProvider ^ provider, System::Globalization::DateTimeStyles style, [Runtime::InteropServices::Out] DateTime % result);
public static bool TryParseExact (string s, string[] formats, IFormatProvider provider, System.Globalization.DateTimeStyles style, out DateTime result);
public static bool TryParseExact (string? s, string?[]? formats, IFormatProvider? provider, System.Globalization.DateTimeStyles style, out DateTime result);
static member TryParseExact : string * string[] * IFormatProvider * System.Globalization.DateTimeStyles * DateTime -> bool
Public Shared Function TryParseExact (s As String, formats As String(), provider As IFormatProvider, style As DateTimeStyles, ByRef result As DateTime) As Boolean

Parameter

s
String

String yang berisi tanggal dan waktu untuk dikonversi.

formats
String[]

Array format syang diizinkan.

provider
IFormatProvider

Objek yang memasok informasi format khusus budaya tentang s.

style
DateTimeStyles

Kombinasi bitwise dari nilai enumerasi yang menunjukkan format syang diizinkan. Nilai umum yang akan ditentukan adalah None.

result
DateTime

Ketika metode ini kembali, berisi nilai DateTime yang setara dengan tanggal dan waktu yang terkandung dalam s, jika konversi berhasil, atau DateTime.MinValue jika konversi gagal. Konversi gagal jika s atau formatsnull, s atau elemen formats adalah string kosong, atau format s tidak persis seperti yang ditentukan oleh setidaknya salah satu pola format dalam formats. Parameter ini diteruskan tanpa diinisialisasi.

Mengembalikan

true jika parameter s berhasil dikonversi; jika tidak, false.

Pengecualian

style bukan nilai DateTimeStyles yang valid.

-atau-

style berisi kombinasi nilai DateTimeStyles yang tidak valid (misalnya, AssumeLocal dan AssumeUniversal).

Contoh

Contoh berikut menggunakan metode DateTime.TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTime) untuk memastikan bahwa string dalam sejumlah format yang mungkin dapat berhasil diurai .

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"};
      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"};
      DateTime dateValue;

      foreach (string dateString in dateStrings)
      {
         if (DateTime.TryParseExact(dateString, formats,
                                    new CultureInfo("en-US"),
                                    DateTimeStyles.None,
                                    out dateValue))
            Console.WriteLine("Converted '{0}' to {1}.", dateString, dateValue);
         else
            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.
open System
open System.Globalization

let 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" |]

let 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" ]

for dateString in dateStrings do
    match DateTime.TryParseExact(dateString, formats, CultureInfo "en-US", DateTimeStyles.None) with
    | true, dateValue ->
        printfn $"Converted '{dateString}' to {dateValue}."
    | _ ->
        printfn $"Unable to convert '{dateString}' to a date."


// 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.
Imports System.Globalization

Public 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"}
      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"} 

      Dim dateValue As DateTime
      
      For Each dateString As String In dateStrings
         If Date.TryParseExact(dateString, formats, _
                               New CultureInfo("en-US"), _
                               DateTimeStyles.None, _
                               dateValue) Then
            Console.WriteLine("Converted '{0}' to {1}.", dateString, dateValue)
         Else
            Console.WriteLine("Unable to convert '{0}' to a date.", dateString)
         End If                                               
      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.

Keterangan

Metode DateTime.TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime) mengurai representasi string tanggal yang cocok dengan salah satu pola yang ditetapkan ke parameter formats. Ini seperti metode DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles), kecuali metode TryParseExact tidak memberikan pengecualian jika konversi gagal.

Parameter s berisi tanggal dan waktu untuk mengurai. Jika parameter s hanya berisi waktu dan tidak ada tanggal, tanggal saat ini digunakan kecuali parameter style menyertakan bendera DateTimeStyles.NoCurrentDateDefault, dalam hal ini tanggal default (DateTime.Date.MinValue) digunakan. Jika parameter s hanya berisi tanggal dan tanpa waktu, tengah malam (00:00:00) digunakan. Parameter style juga menentukan apakah parameter s dapat berisi karakter spasi putih di depan, dalam, atau berikutnya selain yang diizinkan oleh salah satu string format di formats.

Jika s tidak berisi informasi zona waktu, properti Kind objek DateTime yang dikembalikan DateTimeKind.Unspecified. Perilaku ini dapat diubah dengan menggunakan bendera DateTimeStyles.AssumeLocal, yang mengembalikan nilai DateTime yang properti Kind nya DateTimeKind.Local, atau dengan menggunakan bendera DateTimeStyles.AssumeUniversal dan DateTimeStyles.AdjustToUniversal, yang mengembalikan nilai DateTime yang properti Kind-nya DateTimeKind.Utc. Jika s berisi informasi zona waktu, waktu dikonversi ke waktu lokal, jika perlu, dan properti Kind objek DateTime yang dikembalikan diatur ke DateTimeKind.Local. Perilaku ini dapat diubah dengan menggunakan bendera DateTimeStyles.RoundtripKind untuk tidak mengonversi Waktu Universal Terkoordinasi (UTC) ke waktu lokal dan mengatur properti Kind ke DateTimeKind.Utc.

Parameter formats berisi array pola, salah satunya s harus cocok persis jika operasi penguraian berhasil. Pola dalam parameter formats terdiri dari satu atau beberapa penentu format kustom dari tabel String Format Tanggal dan Waktu Kustom, atau penentu format standar tunggal, yang mengidentifikasi pola yang telah ditentukan sebelumnya, dari tabel String Format Tanggal dan Waktu Standar.

Jika Anda tidak menggunakan pemisah tanggal atau waktu dalam pola format kustom, gunakan budaya invarian untuk parameter provider dan bentuk terluas dari setiap penentu format kustom. Misalnya, jika Anda ingin menentukan jam dalam pola, tentukan bentuk yang lebih luas, "HH", alih-alih bentuk yang lebih sempit, "H".

Simbol dan string tanggal dan waktu tertentu (seperti nama hari dalam seminggu dalam bahasa tertentu) yang digunakan dalam s didefinisikan oleh parameter provider, seperti format s yang tepat jika format adalah string penentu format standar. Parameter provider dapat berupa salah satu hal berikut:

Jika providernull, objek CultureInfo yang sesuai dengan budaya saat ini digunakan.

Parameter styles mencakup satu atau beberapa anggota enumerasi DateTimeStyles yang menentukan apakah dan di mana ruang putih yang tidak ditentukan oleh format dapat muncul di s dan yang mengontrol perilaku yang tepat dari operasi penguraian. Tabel berikut menjelaskan bagaimana setiap anggota enumerasi DateTimeStyles memengaruhi operasi metode TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTime).

Anggota DateTimeStyles Deskripsi
AdjustToUniversal Mengurai s dan, jika perlu, mengonversinya ke UTC. Jika s menyertakan offset zona waktu, atau jika s tidak berisi informasi zona waktu tetapi styles menyertakan bendera DateTimeStyles.AssumeLocal, metode mengurai string, memanggil ToUniversalTime untuk mengonversi nilai DateTime yang dikembalikan ke UTC, dan mengatur properti Kind ke DateTimeKind.Utc. Jika s menunjukkan bahwa itu mewakili UTC, atau jika s tidak berisi informasi zona waktu tetapi styles menyertakan bendera DateTimeStyles.AssumeUniversal, metode mengurai string, tidak melakukan konversi zona waktu pada nilai DateTime yang dikembalikan, dan mengatur properti Kind ke DateTimeKind.Utc. Dalam semua kasus lain, bendera tidak berpengaruh.
AllowInnerWhite Menentukan bahwa spasi kosong yang tidak ditentukan oleh format dapat muncul di antara elemen tanggal atau waktu individual.
AllowLeadingWhite Menentukan bahwa spasi kosong yang tidak ditentukan oleh format dapat muncul di awal s.
AllowTrailingWhite Menentukan bahwa spasi kosong yang tidak ditentukan oleh format dapat muncul di akhir s.
AllowWhiteSpaces Menentukan bahwa s mungkin berisi spasi putih awal, dalam, dan akhir yang tidak ditentukan oleh format.
AssumeLocal Menentukan bahwa jika s tidak memiliki informasi zona waktu apa pun, diasumsikan mewakili waktu lokal. Kecuali bendera DateTimeStyles.AdjustToUniversal ada, properti Kind dari nilai DateTime yang dikembalikan diatur ke DateTimeKind.Local.
AssumeUniversal Menentukan bahwa jika s tidak memiliki informasi zona waktu apa pun, diasumsikan mewakili UTC. Kecuali bendera DateTimeStyles.AdjustToUniversal ada, metode mengonversi nilai DateTime yang dikembalikan dari UTC ke waktu lokal dan mengatur properti Kind ke DateTimeKind.Local.
NoCurrentDateDefault Jika s berisi waktu tanpa informasi tanggal, tanggal nilai pengembalian diatur ke DateTime.MinValue.Date.
None Parameter s diurai menggunakan nilai default. Tidak ada spasi kosong selain yang ada di format diizinkan. Jika s tidak memiliki komponen tanggal, tanggal nilai DateTime yang dikembalikan diatur ke 1/1/0001. Jika s tidak berisi informasi zona waktu, properti Kind objek DateTime yang dikembalikan diatur ke DateTimeKind.Unspecified. Jika informasi zona waktu ada di s, waktu dikonversi ke waktu lokal dan properti Kind objek DateTime yang dikembalikan diatur ke DateTimeKind.Local.
RoundtripKind Untuk string yang berisi informasi zona waktu, coba cegah konversi ke nilai DateTime dengan properti Kind diatur ke DateTimeKind.Local. Bendera ini terutama mencegah konversi waktu UTC ke waktu lokal.

Catatan Bagi Pemanggil

Dalam .NET Framework 4, metode TryParseExact mengembalikan false jika string yang akan diurai berisi komponen jam dan penunjuk AM/PM yang tidak dalam perjanjian. Dalam .NET Framework 3.5 dan versi yang lebih lama, penunjuk AM/PM diabaikan.

Lihat juga

Berlaku untuk