DateTime.TryParse Metode

Definisi

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

Overload

Nama Deskripsi
TryParse(ReadOnlySpan<Char>, DateTime)

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

TryParse(String, DateTime)

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

TryParse(ReadOnlySpan<Char>, IFormatProvider, DateTime)

Mencoba mengurai rentang karakter menjadi nilai.

TryParse(String, IFormatProvider, DateTime)

Mencoba mengurai string ke dalam nilai.

TryParse(String, IFormatProvider, DateTimeStyles, DateTime)

Mengonversi representasi string yang ditentukan dari tanggal dan waktu ke DateTime yang setara menggunakan informasi format dan gaya pemformatan khusus budaya yang ditentukan, dan mengembalikan nilai yang menunjukkan apakah konversi berhasil.

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

Mengonversi representasi rentang tanggal dan waktu ke DateTime yang setara menggunakan informasi format dan gaya pemformatan khusus budaya yang ditentukan, dan mengembalikan nilai yang menunjukkan apakah konversi berhasil.

Keterangan

Important

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.

TryParse(ReadOnlySpan<Char>, DateTime)

Sumber:
DateTime.cs
Sumber:
DateTime.cs
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 TryParse(ReadOnlySpan<char> s, [Runtime::InteropServices::Out] DateTime % result);
public static bool TryParse(ReadOnlySpan<char> s, out DateTime result);
static member TryParse : ReadOnlySpan<char> * DateTime -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), ByRef result As DateTime) As Boolean

Parameter

s
ReadOnlySpan<Char>

String yang berisi tanggal dan waktu untuk dikonversi.

result
DateTime

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

Mengembalikan

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

Berlaku untuk

TryParse(String, DateTime)

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

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

public:
 static bool TryParse(System::String ^ s, [Runtime::InteropServices::Out] DateTime % result);
public static bool TryParse(string s, out DateTime result);
public static bool TryParse(string? s, out DateTime result);
static member TryParse : string * DateTime -> bool
Public Shared Function TryParse (s As String, ByRef result As DateTime) As Boolean

Parameter

s
String

String yang berisi tanggal dan waktu untuk dikonversi.

result
DateTime

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

Mengembalikan

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

Contoh

Contoh berikut meneruskan sejumlah string tanggal dan waktu ke DateTime.TryParse(String, DateTime) metode .

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string[] dateStrings = {"05/01/2009 14:57:32.8", "2009-05-01 14:57:32.8",
                              "2009-05-01T14:57:32.8375298-04:00", "5/01/2008",
                              "5/01/2008 14:57:32.80 -07:00",
                              "1 May 2008 2:57:32.8 PM", "16-05-2009 1:00:32 PM",
                              "Fri, 15 May 2009 20:10:57 GMT" };
      DateTime dateValue;

      Console.WriteLine("Attempting to parse strings using {0} culture.",
                        CultureInfo.CurrentCulture.Name);
      foreach (string dateString in dateStrings)
      {
         if (DateTime.TryParse(dateString, out dateValue))
            Console.WriteLine("  Converted '{0}' to {1} ({2}).", dateString,
                              dateValue, dateValue.Kind);
         else
            Console.WriteLine("  Unable to parse '{0}'.", dateString);
      }
   }
}
// The example displays output like the following:
//    Attempting to parse strings using en-US culture.
//      Converted '05/01/2009 14:57:32.8' to 5/1/2009 2:57:32 PM (Unspecified).
//      Converted '2009-05-01 14:57:32.8' to 5/1/2009 2:57:32 PM (Unspecified).
//      Converted '2009-05-01T14:57:32.8375298-04:00' to 5/1/2009 11:57:32 AM (Local).
//
//      Converted '5/01/2008' to 5/1/2008 12:00:00 AM (Unspecified).
//      Converted '5/01/2008 14:57:32.80 -07:00' to 5/1/2008 2:57:32 PM (Local).
//      Converted '1 May 2008 2:57:32.8 PM' to 5/1/2008 2:57:32 PM (Unspecified).
//      Unable to parse '16-05-2009 1:00:32 PM'.
//      Converted 'Fri, 15 May 2009 20:10:57 GMT' to 5/15/2009 1:10:57 PM (Local).
open System
open System.Globalization

let dateStrings = 
    [ "05/01/2009 14:57:32.8"; "2009-05-01 14:57:32.8"
      "2009-05-01T14:57:32.8375298-04:00"; "5/01/2008"
      "5/01/2008 14:57:32.80 -07:00"
      "1 May 2008 2:57:32.8 PM"; "16-05-2009 1:00:32 PM"
      "Fri, 15 May 2009 20:10:57 GMT" ]

printfn $"Attempting to parse strings using {CultureInfo.CurrentCulture.Name} culture."
for dateString in dateStrings do
    match DateTime.TryParse dateString with
    | true, dateValue ->
        printfn $"  Converted '{dateString}' to {dateValue} ({dateValue.Kind})."
    | _ ->
        printfn $"  Unable to parse '{dateString}'."


// The example displays output like the following:
//    Attempting to parse strings using en-US culture.
//      Converted '05/01/2009 14:57:32.8' to 5/1/2009 2:57:32 PM (Unspecified).
//      Converted '2009-05-01 14:57:32.8' to 5/1/2009 2:57:32 PM (Unspecified).
//      Converted '2009-05-01T14:57:32.8375298-04:00' to 5/1/2009 11:57:32 AM (Local).
//      Converted '5/01/2008' to 5/1/2008 12:00:00 AM (Unspecified).
//      Converted '5/01/2008 14:57:32.80 -07:00' to 5/1/2008 2:57:32 PM (Local).
//      Converted '1 May 2008 2:57:32.8 PM' to 5/1/2008 2:57:32 PM (Unspecified).
//      Unable to parse '16-05-2009 1:00:32 PM'.
//      Converted 'Fri, 15 May 2009 20:10:57 GMT' to 5/15/2009 1:10:57 PM (Local).
Imports System.Globalization

Public Module Example
   Public Sub Main()
      Dim dateStrings() As String = {"05/01/2009 14:57:32.8", "2009-05-01 14:57:32.8",
                                     "2009-05-01T14:57:32.8375298-04:00", "5/01/2008",
                                     "5/01/2008 14:57:32.80 -07:00",
                                     "1 May 2008 2:57:32.8 PM", "16-05-2009 1:00:32 PM",
                                     "Fri, 15 May 2009 20:10:57 GMT"}
      Dim dateValue As Date
      
      Console.WriteLine("Attempting to parse strings using {0} culture.", _
                        CultureInfo.CurrentCulture.Name)
      For Each dateString As String In dateStrings
         If Date.TryParse(dateString, dateValue) Then
            Console.WriteLine("  Converted '{0}' to {1} ({2}).", dateString, _
                              dateValue, dateValue.Kind)
         Else
            Console.WriteLine("  Unable to parse '{0}'.", dateString)
         End If
      Next
   End Sub
End Module
' The example displays output like the following:
'    Attempting to parse strings using en-US culture.
'      Converted '05/01/2009 14:57:32.8' to 5/1/2009 2:57:32 PM (Unspecified).
'      Converted '2009-05-01 14:57:32.8' to 5/1/2009 2:57:32 PM (Unspecified).
'      Converted '2009-05-01T14:57:32.8375298-04:00' to 5/1/2009 11:57:32 AM (Local).
'
'      Converted '5/01/2008' to 5/1/2008 12:00:00 AM (Unspecified).
'      Converted '5/01/2008 14:57:32.80 -07:00' to 5/1/2008 2:57:32 PM (Local).
'      Converted '1 May 2008 2:57:32.8 PM' to 5/1/2008 2:57:32 PM (Unspecified).
'      Unable to parse '16-05-2009 1:00:32 PM'.
'      Converted 'Fri, 15 May 2009 20:10:57 GMT' to 5/15/2009 1:10:57 PM (Local).

Keterangan

Metode DateTime.TryParse(String, DateTime) ini mirip DateTime.Parse(String) dengan metode , kecuali bahwa TryParse(String, DateTime) metode tidak melemparkan pengecualian jika konversi gagal.

String s diurai menggunakan informasi pemformatan dalam objek saat ini DateTimeFormatInfo , yang disediakan secara implisit oleh budaya saat ini.

Metode ini mencoba mengabaikan data yang tidak dikenal, jika memungkinkan, dan mengisi informasi bulan, hari, dan tahun yang hilang dengan tanggal saat ini. Jika s hanya berisi tanggal dan tidak ada waktu, metode ini mengasumsikan waktunya adalah 12:00 tengah malam. Jika s menyertakan komponen tanggal dengan tahun dua digit, komponen tersebut dikonversi ke tahun dalam kalender budaya saat ini berdasarkan nilai Calendar.TwoDigitYearMax properti. Karakter spasi s putih di awal, dalam, atau belakang diabaikan. Tanggal dan waktu dapat dikurung dengan sepasang karakter TANDA ANGKA di depan dan berikutnya ('#', U+0023), dan dapat dibuntuti dengan satu atau beberapa karakter NULL (U+0000).

DateTime.TryParse(String, DateTime) Karena metode mencoba mengurai representasi string tanggal dan waktu menggunakan aturan pemformatan budaya saat ini, mencoba mengurai string tertentu di berbagai budaya dapat gagal atau mengembalikan hasil yang berbeda. Jika format tanggal dan waktu tertentu akan diurai di berbagai lokal, gunakan DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) metode atau salah satu kelebihan beban TryParseExact metode dan berikan penentu format.

Jika s merupakan representasi string dari hari kabisat dalam tahun kabisat di kalender saat ini, metode mengurai s dengan sukses. Jika s merupakan representasi string dari hari lompatan dalam tahun non-lompatan di kalender budaya saat ini, operasi penguraian gagal dan metode mengembalikan false.

Jika s tidak berisi informasi zona waktu, result berisi DateTime nilai yang propertinya Kind adalah DateTimeKind.Unspecified ketika metode kembali. Jika string yang akan diurai berisi informasi zona waktu, result berisi DateTime nilai yang propertinya Kind adalah DateTimeKind.Local ketika metode kembali.

Catatan Bagi Pemanggil

Pemformatan dipengaruhi oleh properti objek saat ini DateTimeFormatInfo , yang secara default berasal dari item Opsi Regional dan Bahasa di Panel Kontrol. Metode ini TryParse secara tak terduga dapat gagal dan mengembalikan False jika properti dan DateSeparator saat ini TimeSeparator diatur ke nilai yang sama.

Lihat juga

Berlaku untuk

TryParse(ReadOnlySpan<Char>, IFormatProvider, DateTime)

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

Mencoba mengurai rentang karakter menjadi nilai.

public:
 static bool TryParse(ReadOnlySpan<char> s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] DateTime % result) = ISpanParsable<DateTime>::TryParse;
public static bool TryParse(ReadOnlySpan<char> s, IFormatProvider? provider, out DateTime result);
static member TryParse : ReadOnlySpan<char> * IFormatProvider * DateTime -> bool
Public Shared Function TryParse (s As ReadOnlySpan(Of Char), provider As IFormatProvider, ByRef result As DateTime) As Boolean

Parameter

s
ReadOnlySpan<Char>

Rentang karakter untuk diurai.

provider
IFormatProvider

Objek yang menyediakan informasi pemformatan khusus budaya tentang s.

result
DateTime

Ketika metode ini kembali, berisi hasil dari penguraian yang berhasil s, atau nilai yang tidak terdefinisi pada kegagalan.

Mengembalikan

true jika s berhasil diurai; jika tidak, false.

Berlaku untuk

TryParse(String, IFormatProvider, DateTime)

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

Mencoba mengurai string ke dalam nilai.

public:
 static bool TryParse(System::String ^ s, IFormatProvider ^ provider, [Runtime::InteropServices::Out] DateTime % result) = IParsable<DateTime>::TryParse;
public static bool TryParse(string? s, IFormatProvider? provider, out DateTime result);
static member TryParse : string * IFormatProvider * DateTime -> bool
Public Shared Function TryParse (s As String, provider As IFormatProvider, ByRef result As DateTime) As Boolean

Parameter

s
String

String yang akan diurai.

provider
IFormatProvider

Objek yang menyediakan informasi pemformatan khusus budaya tentang s.

result
DateTime

Ketika metode ini kembali, berisi hasil penguraian yang berhasil s atau nilai yang tidak terdefinisi pada kegagalan.

Mengembalikan

true jika s berhasil diurai; jika tidak, false.

Berlaku untuk

TryParse(String, IFormatProvider, DateTimeStyles, DateTime)

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

Mengonversi representasi string yang ditentukan dari tanggal dan waktu ke DateTime yang setara menggunakan informasi format dan gaya pemformatan khusus budaya yang ditentukan, dan mengembalikan nilai yang menunjukkan apakah konversi berhasil.

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

Parameter

s
String

String yang berisi tanggal dan waktu untuk dikonversi.

provider
IFormatProvider

Objek yang memasok informasi pemformatan khusus budaya tentang s.

styles
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 DateTime nilai yang setara dengan tanggal dan waktu yang terkandung dalam s, jika konversi berhasil, atau DateTime.MinValue jika konversi gagal. Konversi gagal jika s parameter adalah null, adalah string kosong (""), atau tidak berisi representasi string yang valid dari tanggal dan waktu. Parameter ini diteruskan tanpa diinisialisasi.

Mengembalikan

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

Pengecualian

styles bukan nilai yang valid DateTimeStyles .

-atau-

styles berisi kombinasi DateTimeStyles nilai yang tidak valid (misalnya, dan AssumeLocalAssumeUniversal).

provider adalah budaya netral dan tidak dapat digunakan dalam operasi penguraian.

Contoh

Contoh berikut mengilustrasikan DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) metode .

using System;
using System.Globalization;

public class Example
{
   public static void Main()
   {
      string dateString;
      CultureInfo culture;
      DateTimeStyles styles;
      DateTime dateResult;

      // Parse a date and time with no styles.
      dateString = "03/01/2009 10:00 AM";
      culture = CultureInfo.CreateSpecificCulture("en-US");
      styles = DateTimeStyles.None;
      if (DateTime.TryParse(dateString, culture, styles, out dateResult))
         Console.WriteLine("{0} converted to {1} {2}.",
                           dateString, dateResult, dateResult.Kind);
      else
         Console.WriteLine("Unable to convert {0} to a date and time.",
                           dateString);

      // Parse the same date and time with the AssumeLocal style.
      styles = DateTimeStyles.AssumeLocal;
      if (DateTime.TryParse(dateString, culture, styles, out dateResult))
         Console.WriteLine("{0} converted to {1} {2}.",
                           dateString, dateResult, dateResult.Kind);
      else
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString);

      // Parse a date and time that is assumed to be local.
      // This time is five hours behind UTC. The local system's time zone is
      // eight hours behind UTC.
      dateString = "2009/03/01T10:00:00-5:00";
      styles = DateTimeStyles.AssumeLocal;
      if (DateTime.TryParse(dateString, culture, styles, out dateResult))
         Console.WriteLine("{0} converted to {1} {2}.",
                           dateString, dateResult, dateResult.Kind);
      else
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString);

      // Attempt to convert a string in improper ISO 8601 format.
      dateString = "03/01/2009T10:00:00-5:00";
      if (DateTime.TryParse(dateString, culture, styles, out dateResult))
         Console.WriteLine("{0} converted to {1} {2}.",
                           dateString, dateResult, dateResult.Kind);
      else
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString);

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

[<EntryPoint>]
let main _ =
    // Parse a date and time with no styles.
    let dateString = "03/01/2009 10:00 AM"
    let culture = CultureInfo.CreateSpecificCulture "en-US"
    let styles = DateTimeStyles.None
    match DateTime.TryParse(dateString, culture, styles) with
    | true, dateResult ->
        printfn $"{dateString} converted to {dateResult} {dateResult.Kind}."
    | _ -> 
        printfn $"Unable to convert {dateString} to a date and time."

    // Parse the same date and time with the AssumeLocal style.
    let styles = DateTimeStyles.AssumeLocal
    match DateTime.TryParse(dateString, culture, styles) with
    | true, dateResult ->
        printfn $"{dateString} converted to {dateResult} {dateResult.Kind}." 
    | _ ->
        printfn $"Unable to convert {dateString} to a date and time."

    // Parse a date and time that is assumed to be local.
    // This time is five hours behind UTC. The local system's time zone is
    // eight hours behind UTC.
    let dateString = "2009/03/01T10:00:00-5:00"
    let styles = DateTimeStyles.AssumeLocal
    match DateTime.TryParse(dateString, culture, styles) with
    | true, dateResult ->
        printfn $"{dateString} converted to {dateResult} {dateResult.Kind}."
    | _ ->
        printfn $"Unable to convert {dateString} to a date and time."

    // Attempt to convert a string in improper ISO 8601 format.
    let dateString = "03/01/2009T10:00:00-5:00"
    match DateTime.TryParse(dateString, culture, styles) with
    | true, dateResult ->
        printfn $"{dateString} converted to {dateResult} {dateResult.Kind}."
    | _ ->
        printfn $"Unable to convert {dateString} to a date and time."

    // Assume a date and time string formatted for the fr-FR culture is the local
    // time and convert it to UTC.
    let dateString = "2008-03-01 10:00"
    let culture = CultureInfo.CreateSpecificCulture "fr-FR"
    let styles = DateTimeStyles.AdjustToUniversal ||| DateTimeStyles.AssumeLocal
    match DateTime.TryParse(dateString, culture, styles) with
    | true, dateResult ->
        printfn $"{dateString} converted to {dateResult} {dateResult.Kind}." 
    | _ ->
        printfn $"Unable to convert {dateString} to a date and time."

    0

// The example displays the following output to the console:
//       03/01/2009 10:00 AM converted to 3/1/2009 10:00:00 AM Unspecified.
//       03/01/2009 10:00 AM converted to 3/1/2009 10:00:00 AM Local.
//       2009/03/01T10:00:00-5:00 converted to 3/1/2009 7:00:00 AM Local.
//       Unable to convert 03/01/2009T10:00:00-5:00 to a date and time.
//       2008-03-01 10:00 converted to 3/1/2008 6:00:00 PM Utc.
Imports System.Globalization

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

      ' Assume a date and time string formatted for the fr-FR culture is the local 
      ' time and convert it to UTC.
      dateString = "2008-03-01 10:00"
      culture = CultureInfo.CreateSpecificCulture("fr-FR")
      styles = DateTimeStyles.AdjustToUniversal Or DateTimeStyles.AssumeLocal
      If DateTime.TryParse(dateString, culture, styles, dateResult)
         Console.WriteLine("{0} converted to {1} {2}.", _
                           dateString, dateResult, dateResult.Kind)
      Else
         Console.WriteLine("Unable to convert {0} to a date and time.", dateString)
      End If      
   End Sub
End Module
' The example displays the following output to the console:
'       03/01/2009 10:00 AM converted to 3/1/2009 10:00:00 AM Unspecified.
'       03/01/2009 10:00 AM converted to 3/1/2009 10:00:00 AM Local.
'       2009/03/01T10:00:00-5:00 converted to 3/1/2009 7:00:00 AM Local.
'       Unable to convert 03/01/2009T10:00:00-5:00 to a date and time.
'       2008-03-01 10:00 converted to 3/1/2008 6:00:00 PM Utc.

Keterangan

Metode ini DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) menguraikan string yang dapat berisi informasi tanggal, waktu, dan zona waktu. Ini mirip dengan metode DateTime.Parse(String, IFormatProvider, DateTimeStyles), kecuali bahwa metode DateTime.TryParse(String, DateTime) tidak membuat pengecualian jika konversi gagal.

Metode ini mencoba mengabaikan data yang tidak dikenal dan mengurai string input (s) sepenuhnya. Jika s berisi waktu tetapi tidak ada tanggal, metode secara default menggantikan tanggal saat ini atau, jika styles menyertakan NoCurrentDateDefault bendera, metode tersebut menggantikan DateTime.Date.MinValue. Jika s berisi tanggal tetapi tidak ada waktu, 12:00 tengah malam digunakan sebagai waktu default. Jika ada tanggal tetapi komponen tahunnya hanya terdiri dari dua digit, tanggal tersebut dikonversi menjadi satu tahun dalam provider kalender parameter saat ini berdasarkan nilai Calendar.TwoDigitYearMax properti. Karakter spasi yang ada di awal, tengah, atau akhir dalam s diabaikan. Tanggal dan waktu dapat dikurung dengan sepasang karakter TANDA ANGKA di depan dan berikutnya ('#', U+0023), dan dapat dibuntuti dengan satu atau beberapa karakter NULL (U+0000).

Format spesifik yang valid untuk elemen tanggal dan waktu, serta nama dan simbol yang digunakan dalam tanggal dan waktu, didefinisikan oleh provider parameter , yang dapat berupa salah satu dari yang berikut ini:

Jika provider adalah null, maka kultur yang sekarang akan digunakan.

Jika s merupakan representasi string dari hari kabisat dalam tahun kabisat di kalender saat ini, metode mengurai s dengan sukses. Jika s adalah representasi string dari hari lompatan dalam tahun non-lompatan di kalender saat ini provider, operasi penguraian gagal dan metode mengembalikan false.

Parameter styles mendefinisikan interpretasi yang tepat dari string yang diurai dan bagaimana operasi penguraian harus menanganinya. Ini dapat berupa satu atau lebih anggota enumerasi DateTimeStyles, sebagaimana dijelaskan dalam tabel berikut.

Anggota DateTimeStyles Description
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 DateTimeStyles.AssumeLocal bendera, metode menguraikan string, memanggil ToUniversalTime untuk mengonversi nilai yang dikembalikan DateTime ke UTC, dan mengatur Kind properti ke DateTimeKind.Utc. Jika s menunjukkan bahwa ia mewakili UTC, atau jika s tidak berisi informasi zona waktu tetapi styles menyertakan DateTimeStyles.AssumeUniversal bendera, metode mengurai string, tidak melakukan konversi zona waktu pada nilai yang dikembalikan DateTime , dan mengatur Kind properti ke DateTimeKind.Utc. Dalam semua kasus lain, bendera tidak berpengaruh.
AllowInnerWhite Meskipun valid, nilai ini diabaikan. Spasi putih di dalam diizinkan dalam elemen tanggal dan waktu pada s.
AllowLeadingWhite Meskipun valid, nilai ini diabaikan. Spasi putih di depan diizinkan dalam elemen tanggal dan waktu s.
AllowTrailingWhite Meskipun valid, nilai ini diabaikan. Spasi putih berikutnya diizinkan dalam elemen tanggal dan waktu .s
AllowWhiteSpaces Menentukan yang s mungkin berisi spasi kosong di depan, dalam, dan belakang. Ini adalah perilaku default. Ini tidak dapat diganti dengan memberikan nilai enumerasi yang lebih ketat DateTimeStyles seperti DateTimeStyles.None.
AssumeLocal Menentukan bahwa jika s tidak memiliki informasi zona waktu apa pun, diasumsikan mewakili waktu lokal. Kecuali jika 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, diasumsikan mewakili UTC. Kecuali bendera DateTimeStyles.AdjustToUniversal hadir, metode ini mengonversi nilai yang dikembalikan DateTime dari UTC ke waktu lokal dan mengatur propertinya Kind ke DateTimeKind.Local.
None Meskipun valid, nilai ini diabaikan.
RoundtripKind Untuk string yang berisi informasi zona waktu, berusaha mencegah konversi string tanggal dan waktu menjadi nilai DateTime dengan properti Kind diatur ke DateTimeKind.Local. Biasanya, string semacam itu dibuat dengan memanggil DateTime.ToString(String) metode menggunakan penentu format standar "o", "r", atau "u".

Jika s tidak berisi informasi zona waktu, metode DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) mengembalikan nilai DateTime yang propertinya Kind adalah DateTimeKind.Unspecified kecuali ada flag styles yang menunjukkan sebaliknya. Jika s menyertakan informasi zona waktu atau offset zona waktu, metode DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime) melakukan konversi waktu yang diperlukan dan mengembalikan salah satu hal berikut:

Perilaku ini dapat digantikan dengan menggunakan DateTimeStyles.RoundtripKind flag.

Mengurai budaya kustom

Jika Anda mengurai string tanggal dan waktu yang dihasilkan untuk budaya kustom, gunakan TryParseExact metode alih-alih TryParse metode untuk meningkatkan probabilitas bahwa operasi penguraian akan berhasil. String tanggal dan waktu budaya kustom bisa rumit dan sulit diurai. Metode ini TryParse mencoba mengurai string dengan beberapa pola penguraian implisit, yang semuanya mungkin gagal. Sebaliknya, metode ini TryParseExact mengharuskan Anda untuk secara eksplisit menunjuk satu atau beberapa pola penguraian yang tepat yang kemungkinan akan berhasil.

Untuk informasi selengkapnya tentang kultur kustom, lihat kelas System.Globalization.CultureAndRegionInfoBuilder.

Catatan Bagi Pemanggil

Pemformatan dipengaruhi oleh properti objek saat ini DateTimeFormatInfo , yang disediakan oleh provider parameter . Metode ini TryParse secara tak terduga dapat gagal dan mengembalikan False jika properti dan DateSeparator saat ini TimeSeparator diatur ke nilai yang sama.

Lihat juga

Berlaku untuk

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

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

Mengonversi representasi rentang tanggal dan waktu ke DateTime yang setara menggunakan informasi format dan gaya pemformatan khusus budaya yang ditentukan, dan mengembalikan nilai yang menunjukkan apakah konversi berhasil.

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

Parameter

s
ReadOnlySpan<Char>

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

provider
IFormatProvider

Objek yang memasok informasi pemformatan khusus budaya tentang s.

styles
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 DateTime nilai yang setara dengan tanggal dan waktu yang terkandung dalam s, jika konversi berhasil, atau DateTime.MinValue jika konversi gagal. Konversi gagal jika s parameter adalah null, adalah string kosong (""), atau tidak berisi representasi string yang valid dari tanggal dan waktu. Parameter ini diteruskan tanpa diinisialisasi.

Mengembalikan

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

Berlaku untuk