DateTimeOffset.TryParseExact Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Mengonversi representasi string yang ditentukan dari tanggal dan waktu menjadi DateTimeOffset setara. Format representasi string harus sama persis dengan format yang ditentukan.
Overload
TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTimeOffset) |
Mengonversi representasi string yang ditentukan dari tanggal dan waktu ke DateTimeOffset yang setara menggunakan array format yang ditentukan, informasi format khusus budaya, dan gaya. Format representasi string harus sama persis dengan salah satu format yang ditentukan. |
TryParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTimeOffset) |
Mengonversi representasi tanggal dan waktu dalam rentang karakter menjadi DateTimeOffset setara menggunakan format yang ditentukan, informasi format khusus budaya, dan gaya. Format representasi tanggal dan waktu harus sama persis dengan format yang ditentukan. |
TryParseExact(ReadOnlySpan<Char>, String[], IFormatProvider, DateTimeStyles, DateTimeOffset) |
Mengonversi representasi tanggal dan waktu dalam rentang karakter menjadi DateTimeOffset setara menggunakan format yang ditentukan, informasi format khusus budaya, dan gaya. Format representasi tanggal dan waktu harus sama persis dengan salah satu format yang ditentukan. |
TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTimeOffset) |
Mengonversi representasi string yang ditentukan dari tanggal dan waktu ke DateTimeOffset yang setara menggunakan format yang ditentukan, informasi format khusus budaya, dan gaya. Format representasi string harus sama persis dengan format yang ditentukan. |
TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTimeOffset)
- Sumber:
- DateTimeOffset.cs
- Sumber:
- DateTimeOffset.cs
- Sumber:
- DateTimeOffset.cs
Mengonversi representasi string yang ditentukan dari tanggal dan waktu ke DateTimeOffset yang setara menggunakan array format yang ditentukan, informasi format khusus budaya, dan gaya. Format representasi string harus sama persis dengan salah satu format yang ditentukan.
public:
static bool TryParseExact(System::String ^ input, cli::array <System::String ^> ^ formats, IFormatProvider ^ formatProvider, System::Globalization::DateTimeStyles styles, [Runtime::InteropServices::Out] DateTimeOffset % result);
public static bool TryParseExact (string input, string[] formats, IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles, out DateTimeOffset result);
public static bool TryParseExact (string? input, string?[]? formats, IFormatProvider? formatProvider, System.Globalization.DateTimeStyles styles, out DateTimeOffset result);
static member TryParseExact : string * string[] * IFormatProvider * System.Globalization.DateTimeStyles * DateTimeOffset -> bool
Public Shared Function TryParseExact (input As String, formats As String(), formatProvider As IFormatProvider, styles As DateTimeStyles, ByRef result As DateTimeOffset) As Boolean
Parameter
- input
- String
String yang berisi tanggal dan waktu untuk dikonversi.
- formats
- String[]
Array yang menentukan format yang diharapkan dari input
.
- formatProvider
- IFormatProvider
Objek yang memasok informasi pemformatan khusus budaya tentang input
.
- styles
- DateTimeStyles
Kombinasi bitwise dari nilai enumerasi yang menunjukkan format input yang diizinkan. Nilai umum yang ditentukan adalah None
.
- result
- DateTimeOffset
Ketika metode kembali, berisi DateTimeOffset yang setara dengan tanggal dan waktu input
, jika konversi berhasil, atau DateTimeOffset.MinValue, jika konversi gagal. Konversi gagal jika input
tidak berisi representasi string yang valid dari tanggal dan waktu, atau tidak berisi tanggal dan waktu dalam format yang diharapkan yang ditentukan oleh format
, atau jika formats
adalah null
. Parameter ini diteruskan tanpa diinisialisasi.
Mengembalikan
true
input
jika parameter berhasil dikonversi; jika tidak, false
.
Pengecualian
styles
menyertakan nilai yang tidak ditentukan DateTimeStyles .
-atau-
NoCurrentDateDefault tidak didukung.
-atau-
styles
mencakup nilai yang saling eksklusif DateTimeStyles .
Contoh
Contoh berikut menentukan beberapa format input untuk representasi string dari nilai tanggal dan waktu dan offset, lalu meneruskan string yang dimasukkan oleh pengguna ke TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTimeOffset) metode .
TextReader conIn = Console.In;
TextWriter conOut = Console.Out;
int tries = 0;
string input = String.Empty;
string[] formats = new string[] {"M/dd/yyyy HH:m zzz", "MM/dd/yyyy HH:m zzz",
"M/d/yyyy HH:m zzz", "MM/d/yyyy HH:m zzz",
"M/dd/yy HH:m zzz", "MM/dd/yy HH:m zzz",
"M/d/yy HH:m zzz", "MM/d/yy HH:m zzz",
"M/dd/yyyy H:m zzz", "MM/dd/yyyy H:m zzz",
"M/d/yyyy H:m zzz", "MM/d/yyyy H:m zzz",
"M/dd/yy H:m zzz", "MM/dd/yy H:m zzz",
"M/d/yy H:m zzz", "MM/d/yy H:m zzz",
"M/dd/yyyy HH:mm zzz", "MM/dd/yyyy HH:mm zzz",
"M/d/yyyy HH:mm zzz", "MM/d/yyyy HH:mm zzz",
"M/dd/yy HH:mm zzz", "MM/dd/yy HH:mm zzz",
"M/d/yy HH:mm zzz", "MM/d/yy HH:mm zzz",
"M/dd/yyyy H:mm zzz", "MM/dd/yyyy H:mm zzz",
"M/d/yyyy H:mm zzz", "MM/d/yyyy H:mm zzz",
"M/dd/yy H:mm zzz", "MM/dd/yy H:mm zzz",
"M/d/yy H:mm zzz", "MM/d/yy H:mm zzz"};
IFormatProvider provider = CultureInfo.InvariantCulture.DateTimeFormat;
DateTimeOffset result;
do {
conOut.WriteLine("Enter a date, time, and offset (MM/DD/YYYY HH:MM +/-HH:MM),");
conOut.Write("Then press Enter: ");
input = conIn.ReadLine();
conOut.WriteLine();
if (DateTimeOffset.TryParseExact(input, formats, provider,
DateTimeStyles.AllowWhiteSpaces,
out result))
{
break;
}
else
{
Console.WriteLine("Unable to parse {0}.", input);
tries++;
}
} while (tries < 3);
if (tries >= 3)
Console.WriteLine("Exiting application without parsing {0}", input);
else
Console.WriteLine("{0} was converted to {1}", input, result.ToString());
// Some successful sample interactions with the user might appear as follows:
// Enter a date, time, and offset (MM/DD/YYYY HH:MM +/-HH:MM),
// Then press Enter: 12/08/2007 6:54 -6:00
//
// 12/08/2007 6:54 -6:00 was converted to 12/8/2007 6:54:00 AM -06:00
//
// Enter a date, time, and offset (MM/DD/YYYY HH:MM +/-HH:MM),
// Then press Enter: 12/8/2007 06:54 -06:00
//
// 12/8/2007 06:54 -06:00 was converted to 12/8/2007 6:54:00 AM -06:00
//
// Enter a date, time, and offset (MM/DD/YYYY HH:MM +/-HH:MM),
// Then press Enter: 12/5/07 6:54 -6:00
//
// 12/5/07 6:54 -6:00 was converted to 12/5/2007 6:54:00 AM -06:00
let mutable result = None
let mutable tries = 0
let mutable input = ""
let formats =
[| "M/dd/yyyy HH:m zzz"; "MM/dd/yyyy HH:m zzz"
"M/d/yyyy HH:m zzz"; "MM/d/yyyy HH:m zzz"
"M/dd/yy HH:m zzz"; "MM/dd/yy HH:m zzz"
"M/d/yy HH:m zzz"; "MM/d/yy HH:m zzz"
"M/dd/yyyy H:m zzz"; "MM/dd/yyyy H:m zzz"
"M/d/yyyy H:m zzz"; "MM/d/yyyy H:m zzz"
"M/dd/yy H:m zzz"; "MM/dd/yy H:m zzz"
"M/d/yy H:m zzz"; "MM/d/yy H:m zzz"
"M/dd/yyyy HH:mm zzz"; "MM/dd/yyyy HH:mm zzz"
"M/d/yyyy HH:mm zzz"; "MM/d/yyyy HH:mm zzz"
"M/dd/yy HH:mm zzz"; "MM/dd/yy HH:mm zzz"
"M/d/yy HH:mm zzz"; "MM/d/yy HH:mm zzz"
"M/dd/yyyy H:mm zzz"; "MM/dd/yyyy H:mm zzz"
"M/d/yyyy H:mm zzz"; "MM/d/yyyy H:mm zzz"
"M/dd/yy H:mm zzz"; "MM/dd/yy H:mm zzz"
"M/d/yy H:mm zzz"; "MM/d/yy H:mm zzz" |]
let provider = CultureInfo.InvariantCulture.DateTimeFormat
while tries < 3 && result.IsNone do
printfn "Enter a date, time, and offset (MM/DD/YYYY HH:MM +/-HH:MM),"
printf "Then press Enter: "
input <- stdin.ReadLine()
printfn ""
match DateTimeOffset.TryParseExact(input, formats, provider, DateTimeStyles.AllowWhiteSpaces) with
| true, dto ->
result <- Some dto
| _ ->
printfn $"Unable to parse {input}."
tries <- tries + 1
match result with
| Some result ->
printfn $"{input} was converted to {result}"
| None ->
printfn $"Exiting application without parsing {input}"
// Some successful sample interactions with the user might appear as follows:
// Enter a date, time, and offset (MM/DD/YYYY HH:MM +/-HH:MM),
// Then press Enter: 12/08/2007 6:54 -6:00
//
// 12/08/2007 6:54 -6:00 was converted to 12/8/2007 6:54:00 AM -06:00
//
// Enter a date, time, and offset (MM/DD/YYYY HH:MM +/-HH:MM),
// Then press Enter: 12/8/2007 06:54 -06:00
//
// 12/8/2007 06:54 -06:00 was converted to 12/8/2007 6:54:00 AM -06:00
//
// Enter a date, time, and offset (MM/DD/YYYY HH:MM +/-HH:MM),
// Then press Enter: 12/5/07 6:54 -6:00
//
// 12/5/07 6:54 -6:00 was converted to 12/5/2007 6:54:00 AM -06:00
Dim conIn As TextReader = Console.In
Dim conOut As TextWriter = Console.Out
Dim tries As Integer = 0
Dim input As String = String.Empty
Dim formats() As String = {"M/dd/yyyy HH:m zzz", "MM/dd/yyyy HH:m zzz", _
"M/d/yyyy HH:m zzz", "MM/d/yyyy HH:m zzz", _
"M/dd/yy HH:m zzz", "MM/dd/yy HH:m zzz", _
"M/d/yy HH:m zzz", "MM/d/yy HH:m zzz", _
"M/dd/yyyy H:m zzz", "MM/dd/yyyy H:m zzz", _
"M/d/yyyy H:m zzz", "MM/d/yyyy H:m zzz", _
"M/dd/yy H:m zzz", "MM/dd/yy H:m zzz", _
"M/d/yy H:m zzz", "MM/d/yy H:m zzz", _
"M/dd/yyyy HH:mm zzz", "MM/dd/yyyy HH:mm zzz", _
"M/d/yyyy HH:mm zzz", "MM/d/yyyy HH:mm zzz", _
"M/dd/yy HH:mm zzz", "MM/dd/yy HH:mm zzz", _
"M/d/yy HH:mm zzz", "MM/d/yy HH:mm zzz", _
"M/dd/yyyy H:mm zzz", "MM/dd/yyyy H:mm zzz", _
"M/d/yyyy H:mm zzz", "MM/d/yyyy H:mm zzz", _
"M/dd/yy H:mm zzz", "MM/dd/yy H:mm zzz", _
"M/d/yy H:mm zzz", "MM/d/yy H:mm zzz"}
Dim provider As IFormatProvider = CultureInfo.InvariantCulture.DateTimeFormat
Dim result As DateTimeOffset
Do
conOut.WriteLine("Enter a date, time, and offset (MM/DD/YYYY HH:MM +/-HH:MM),")
conOut.Write("Then press Enter: ")
input = conIn.ReadLine()
conOut.WriteLine()
If DateTimeOffset.TryParseExact(input, formats, provider, _
DateTimeStyles.AllowWhiteSpaces, _
result) Then
Exit Do
Else
Console.WriteLine("Unable to parse {0}.", input)
tries += 1
End If
Loop While tries < 3
If tries >= 3 Then
Console.WriteLine("Exiting application without parsing {0}", input)
Else
Console.WriteLine("{0} was converted to {1}", input, result.ToString())
End If
' Some successful sample interactions with the user might appear as follows:
' Enter a date, time, and offset (MM/DD/YYYY HH:MM +/-HH:MM),
' Then press Enter: 12/08/2007 6:54 -6:00
'
' 12/08/2007 6:54 -6:00 was converted to 12/8/2007 6:54:00 AM -06:00
'
' Enter a date, time, and offset (MM/DD/YYYY HH:MM +/-HH:MM),
' Then press Enter: 12/8/2007 06:54 -06:00
'
' 12/8/2007 06:54 -06:00 was converted to 12/8/2007 6:54:00 AM -06:00
'
' Enter a date, time, and offset (MM/DD/YYYY HH:MM +/-HH:MM),
' Then press Enter: 12/5/07 6:54 -6:00
'
' 12/5/07 6:54 -6:00 was converted to 12/5/2007 6:54:00 AM -06:00
Keterangan
Metode ini TryParseExact(String, String[], IFormatProvider, DateTimeStyles, DateTimeOffset) menguraikan representasi string dari tanggal yang cocok dengan salah satu pola yang ditetapkan ke formats
array. input
Jika string tidak cocok dengan salah satu pola ini dengan variasi apa pun yang ditentukan oleh styles
parameter, operasi penguraian gagal dan metode mengembalikan false
. Selain membandingkan input
dengan beberapa string yang berisi penentu format, kelebihan beban ini berperilaku identik dengan DateTimeOffset.ParseExact(String, String[], IFormatProvider, DateTimeStyles) metode .
Parameter formats
adalah array string yang elemennya berisi penentu format standar tunggal atau satu atau beberapa penentu format kustom yang menentukan pola yang mungkin dari input
. Untuk detail tentang kode pemformatan yang valid, lihat String Format Tanggal dan Waktu Standar dan String Format Tanggal dan Waktu Kustom. Jika elemen yang cocok dalam formats
menyertakan z
, , zz
atau zzz
penentu format kustom untuk menunjukkan bahwa offset harus ada di input
, offset tersebut harus menyertakan tanda negatif atau tanda positif. Jika tanda hilang, operasi penguraian gagal dan metode mengembalikan false
.
Penting
formats
Menggunakan parameter kelebihan beban ini untuk menentukan beberapa format dapat membantu mengurangi frustrasi yang dialami banyak pengguna saat mereka memasukkan tanggal dan waktu. Secara khusus, kemampuan untuk menentukan beberapa pola input memungkinkan aplikasi untuk menangani representasi tanggal dan waktu yang dapat menyertakan atau tidak memiliki nol di depan dalam bulan, hari, jam, menit, dan detik. Contohnya memberikan ilustrasi tentang hal ini.
Jika elemen yang cocok di formats
mengharuskan yang input
berisi tanggal tetapi bukan waktu, objek yang dihasilkan DateTimeOffset ditetapkan waktu tengah malam (0:00:00). Jika elemen yang cocok di formats
mengharuskan input tersebut berisi waktu tetapi bukan tanggal, objek yang dihasilkan DateTimeOffset ditetapkan tanggal saat ini pada sistem lokal. Jika elemen yang cocok di formats
tidak memerlukan yang input
berisi offset, offset objek yang dihasilkan DateTimeOffset tergantung pada nilai styles
parameter. Jika styles
menyertakan AssumeLocal, offset zona waktu lokal ditetapkan ke DateTimeOffset objek . Jika styles
menyertakan AssumeUniversal, offset Waktu Universal Terkoordinasi (UTC), atau +00:00, ditetapkan ke DateTimeOffset objek . Jika tidak ada nilai yang ditentukan, offset zona waktu lokal akan digunakan.
Simbol dan string tanggal dan waktu tertentu yang digunakan ditentukan input
oleh formatProvider
parameter . Hal yang sama berlaku untuk pola input
yang tepat jika elemen formats
yang cocok adalah string penentu format standar. Parameter formatProvider
dapat berupa salah satu hal berikut:
Objek CultureInfo yang mewakili budaya berdasarkan yang
input
ditafsirkan. Objek DateTimeFormatInfo yang CultureInfo.DateTimeFormat dikembalikan oleh properti menentukan simbol dan pemformatan diinput
.Objek DateTimeFormatInfo yang menentukan format data tanggal dan waktu.
Jika formatprovider
adalah null
, CultureInfo objek yang sesuai dengan budaya saat ini digunakan.
Parameter styles
menentukan apakah spasi putih diizinkan dalam string input, menunjukkan bagaimana string tanpa komponen offset eksplisit diurai, dan mendukung konversi UTC sebagai bagian dari operasi penguraian. Semua anggota DateTimeStyles enumerasi didukung kecuali NoCurrentDateDefault. Tabel berikut ini mencantumkan efek dari setiap anggota yang didukung.
DateTimeStyles anggota |
Aktivitas |
---|---|
AdjustToUniversal | Mengurai input dan, jika perlu, mengonversinya menjadi UTC. Ini setara dengan mengurai string, dan kemudian memanggil DateTimeOffset.ToUniversalTime metode objek yang dikembalikan DateTimeOffset . |
AssumeLocal | Jika elemen yang cocok di formats tidak memerlukan yang input berisi nilai offset, objek yang dikembalikan DateTimeOffset diberikan offset zona waktu lokal. Ini adalah nilai default. |
AssumeUniversal | Jika elemen yang cocok di formats tidak memerlukan yang input berisi nilai offset, objek yang dikembalikan DateTimeOffset diberikan offset UTC (+00:00). |
AllowInnerWhite | Memungkinkan input untuk menyertakan ruang putih dalam yang tidak ditentukan oleh elemen di formats . Ruang kosong ekstra dapat muncul antara komponen tanggal dan waktu dan dalam komponen individual (kecuali untuk offset) dan diabaikan saat mengurai string. |
AllowLeadingWhite | Memungkinkan input untuk menyertakan spasi di depan yang tidak ditentukan oleh elemen di formats . Ini diabaikan saat mengurai string. |
AllowTrailingWhite | Memungkinkan input untuk menyertakan spasi berikutnya yang tidak ditentukan oleh elemen di formats . Ini diabaikan saat mengurai string. |
AllowWhiteSpaces | Memungkinkan input untuk menyertakan spasi di depan, di belakang, dan dalam yang tidak ditentukan oleh elemen di formats . Semua karakter spasi putih ekstra yang tidak ditentukan dalam elemen yang cocok di formats diabaikan saat mengurai string. |
None | Menunjukkan bahwa ruang kosong tambahan tidak diizinkan di input . Spasi kosong harus muncul persis seperti yang ditentukan dalam elemen tertentu agar formats kecocokan berhasil terjadi. Ini adalah perilaku default. |
RoundtripKind | Tidak berpengaruh karena DateTimeOffset struktur tidak menyertakan Kind properti . |
Catatan Bagi Pemanggil
Dalam .NET Framework 4, 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.
Berlaku untuk
TryParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles, DateTimeOffset)
- Sumber:
- DateTimeOffset.cs
- Sumber:
- DateTimeOffset.cs
- Sumber:
- DateTimeOffset.cs
Mengonversi representasi tanggal dan waktu dalam rentang karakter menjadi DateTimeOffset setara menggunakan format yang ditentukan, informasi format khusus budaya, dan gaya. Format representasi tanggal dan waktu harus sama persis dengan format yang ditentukan.
public:
static bool TryParseExact(ReadOnlySpan<char> input, ReadOnlySpan<char> format, IFormatProvider ^ formatProvider, System::Globalization::DateTimeStyles styles, [Runtime::InteropServices::Out] DateTimeOffset % result);
public static bool TryParseExact (ReadOnlySpan<char> input, ReadOnlySpan<char> format, IFormatProvider? formatProvider, System.Globalization.DateTimeStyles styles, out DateTimeOffset result);
public static bool TryParseExact (ReadOnlySpan<char> input, ReadOnlySpan<char> format, IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles, out DateTimeOffset result);
static member TryParseExact : ReadOnlySpan<char> * ReadOnlySpan<char> * IFormatProvider * System.Globalization.DateTimeStyles * DateTimeOffset -> bool
Public Shared Function TryParseExact (input As ReadOnlySpan(Of Char), format As ReadOnlySpan(Of Char), formatProvider As IFormatProvider, styles As DateTimeStyles, ByRef result As DateTimeOffset) As Boolean
Parameter
- input
- ReadOnlySpan<Char>
Rentang yang berisi karakter yang mewakili tanggal dan waktu untuk dikonversi.
- format
- ReadOnlySpan<Char>
Penentu format yang menentukan format yang diperlukan dari input
.
- formatProvider
- IFormatProvider
Objek yang memasok informasi pemformatan khusus budaya tentang input
.
- styles
- DateTimeStyles
Kombinasi bitwise dari nilai enumerasi yang menunjukkan format yang diizinkan dari input
. Nilai umum yang ditentukan adalah None.
- result
- DateTimeOffset
Ketika metode kembali, berisi DateTimeOffset yang setara dengan tanggal dan waktu input
, jika konversi berhasil, atau DateTimeOffset.MinValue jika konversi gagal. Konversi gagal jika
Mengembalikan
true
jika parameter berhasil dikonversi input
; jika tidak, false
.
Pengecualian
styles
menyertakan nilai yang tidak ditentukan DateTimeStyles .
-or- NoCurrentDateDefault tidak didukung.
-atau- styles
mencakup nilai yang saling eksklusif DateTimeStyles .
Keterangan
Kelebihan beban ini seperti DateTimeOffset.ParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles) metode , kecuali bahwa metode ini tidak memberikan pengecualian jika konversi gagal. Ini mengurai representasi tanggal dan waktu yang harus sama persis dengan pola yang ditentukan oleh format
parameter. Jika input
tidak cocok dengan pola ini, dengan beberapa variasi yang mungkin dalam spasi putih yang ditentukan oleh styles
parameter, operasi penguraian gagal dan metode mengembalikan false
.
Parameter format
adalah rentang karakter yang berisi penentu format standar tunggal atau satu atau beberapa penentu format kustom yang menentukan pola yang diperlukan dari input
. Untuk detail tentang kode pemformatan yang valid, lihat String Format Tanggal dan Waktu Standar dan String Format Tanggal dan Waktu Kustom. Jika format
menyertakan penentu z
format kustom , zz
, atau zzz
untuk menunjukkan bahwa offset harus ada di input
, offset tersebut harus menyertakan tanda negatif atau tanda positif. Jika tanda hilang, operasi penguraian gagal dan metode mengembalikan false
.
Jika format
mengharuskan yang input
berisi tanggal tetapi bukan waktu, objek yang dihasilkan DateTimeOffset ditetapkan waktu tengah malam (0:00:00). Jika format
mengharuskan berisi input
waktu tetapi bukan tanggal, objek yang dihasilkan DateTimeOffset diberi tanggal saat ini pada sistem lokal. Jika format
tidak mengharuskan berisi input
offset, offset objek yang dihasilkan DateTimeOffset tergantung pada nilai styles
parameter. Jika styles
termasuk AssumeLocal, offset zona waktu lokal ditetapkan ke DateTimeOffset objek . Jika styles
menyertakan AssumeUniversal, offset Waktu Universal Terkoordinasi (UTC), atau +00:00, ditetapkan ke DateTimeOffset objek . Jika tidak ada nilai yang ditentukan, offset zona waktu lokal akan digunakan.
Simbol dan string tanggal dan waktu tertentu yang digunakan ditentukan input
oleh formatProvider
parameter . Hal yang sama berlaku untuk pola input
yang tepat jika format
adalah string penentu format standar. Parameter formatProvider
dapat berupa salah satu dari yang berikut:
Objek CultureInfo yang mewakili budaya berdasarkan yang
input
ditafsirkan. Objek DateTimeFormatInfo yang CultureInfo.DateTimeFormat dikembalikan oleh properti menentukan simbol dan format standar yang diizinkan dalaminput
.Objek DateTimeFormatInfo yang menentukan format data tanggal dan waktu.
Jika formatprovider
adalah null
, CultureInfo objek yang sesuai dengan budaya saat ini digunakan.
Parameter styles
menentukan apakah spasi kosong diizinkan dalam string input, menunjukkan bagaimana string tanpa komponen offset eksplisit diurai, dan mendukung konversi UTC sebagai bagian dari operasi penguraian. Semua anggota DateTimeStyles enumerasi didukung kecuali NoCurrentDateDefault. Tabel berikut ini mencantumkan efek dari setiap anggota yang didukung.
DateTimeStyles anggota |
Aktivitas |
---|---|
AdjustToUniversal | Mengurai input dan, jika perlu, mengonversinya ke UTC. Ini setara dengan mengurai representasi tanggal dan waktu, lalu memanggil DateTimeOffset.ToUniversalTime metode objek yang dikembalikan DateTimeOffset . |
AssumeLocal | Jika format tidak mengharuskan berisi input nilai offset, objek yang dikembalikan DateTimeOffset diberikan offset zona waktu lokal. Ini adalah perilaku default. |
AssumeUniversal | Jika format tidak memerlukan yang input berisi nilai offset, objek yang dikembalikan DateTimeOffset diberikan offset UTC (+00:00). |
AllowInnerWhite | Memungkinkan input untuk menyertakan spasi kosong dalam yang tidak ditentukan oleh format. Ruang kosong ekstra dapat muncul antara komponen tanggal dan waktu dan dalam komponen individual, selain offset, dan diabaikan saat mengurai string. |
AllowLeadingWhite | Memungkinkan input untuk menyertakan spasi di depan yang tidak ditentukan oleh format . Ini diabaikan saat mengurai string. |
AllowTrailingWhite | Memungkinkan input untuk menyertakan spasi berikutnya yang tidak ditentukan oleh format . Ini diabaikan saat mengurai string. |
AllowWhiteSpaces | Memungkinkan input untuk menyertakan spasi di depan, di belakang, dan dalam yang tidak ditentukan oleh format . Semua karakter spasi kosong ekstra yang tidak ditentukan di format diabaikan saat mengurai string. |
None | Menunjukkan bahwa ruang kosong tambahan tidak diizinkan di input . Spasi kosong harus muncul persis seperti yang ditentukan dalam format . Ini adalah perilaku default. |
RoundtripKind | Tidak berpengaruh, karena DateTimeOffset struktur tidak menyertakan Kind properti . |
Berlaku untuk
TryParseExact(ReadOnlySpan<Char>, String[], IFormatProvider, DateTimeStyles, DateTimeOffset)
- Sumber:
- DateTimeOffset.cs
- Sumber:
- DateTimeOffset.cs
- Sumber:
- DateTimeOffset.cs
Mengonversi representasi tanggal dan waktu dalam rentang karakter menjadi DateTimeOffset setara menggunakan format yang ditentukan, informasi format khusus budaya, dan gaya. Format representasi tanggal dan waktu harus sama persis dengan salah satu format yang ditentukan.
public:
static bool TryParseExact(ReadOnlySpan<char> input, cli::array <System::String ^> ^ formats, IFormatProvider ^ formatProvider, System::Globalization::DateTimeStyles styles, [Runtime::InteropServices::Out] DateTimeOffset % result);
public static bool TryParseExact (ReadOnlySpan<char> input, string?[]? formats, IFormatProvider? formatProvider, System.Globalization.DateTimeStyles styles, out DateTimeOffset result);
public static bool TryParseExact (ReadOnlySpan<char> input, string[] formats, IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles, out DateTimeOffset result);
static member TryParseExact : ReadOnlySpan<char> * string[] * IFormatProvider * System.Globalization.DateTimeStyles * DateTimeOffset -> bool
Public Shared Function TryParseExact (input As ReadOnlySpan(Of Char), formats As String(), formatProvider As IFormatProvider, styles As DateTimeStyles, ByRef result As DateTimeOffset) As Boolean
Parameter
- input
- ReadOnlySpan<Char>
Rentang yang berisi karakter yang mewakili tanggal dan waktu untuk dikonversi.
- formats
- String[]
Array string format standar atau kustom yang menentukan format yang dapat diterima dari input
.
- formatProvider
- IFormatProvider
Objek yang memasok informasi pemformatan khusus budaya tentang input
.
- styles
- DateTimeStyles
Kombinasi bitwise dari nilai enumerasi yang menunjukkan format yang diizinkan dari input
. Nilai umum yang akan ditentukan adalah None.
- result
- DateTimeOffset
Ketika metode kembali, berisi DateTimeOffset yang setara dengan tanggal dan waktu input
, jika konversi berhasil, atau DateTimeOffset.MinValue jika konversi gagal. Konversi gagal jika
Mengembalikan
true
jika parameter berhasil dikonversi input
; jika tidak, false
.
Pengecualian
styles
menyertakan nilai yang tidak ditentukan DateTimeStyles .
-or- NoCurrentDateDefault tidak didukung.
-atau- styles
termasuk nilai yang saling eksklusif DateTimeStyles .
Keterangan
Metode ini menguraikan representasi string dari tanggal yang cocok dengan salah satu pola yang ditetapkan ke formats
array. Jika input
tidak cocok dengan salah satu pola ini dengan variasi apa pun yang ditentukan oleh styles
parameter , operasi penguraian gagal dan metode mengembalikan false
. Selain membandingkan input
dengan beberapa string yang berisi penentu format, kelebihan beban ini berperilaku identik dengan DateTimeOffset.ParseExact(ReadOnlySpan<Char>, String[], IFormatProvider, DateTimeStyles) metode .
Parameter formats
adalah array string yang elemennya berisi penentu format standar tunggal atau satu atau beberapa penentu format kustom yang menentukan kemungkinan pola input
. Untuk detail tentang kode pemformatan yang valid, lihat String Format Tanggal dan Waktu Standar dan String Format Tanggal dan Waktu Kustom. Jika elemen yang cocok di formats
menyertakan z
penentu format kustom , , zz
atau zzz
untuk menunjukkan bahwa offset harus ada di input
, offset tersebut harus menyertakan tanda negatif atau tanda positif. Jika tanda hilang, operasi penguraian gagal dan metode mengembalikan false
.
Penting
formats
Menggunakan parameter kelebihan beban ini untuk menentukan beberapa format dapat membantu mengurangi frustrasi yang dialami banyak pengguna saat mereka memasukkan tanggal dan waktu. Secara khusus, kemampuan untuk menentukan beberapa pola input memungkinkan aplikasi untuk menangani representasi tanggal dan waktu yang dapat mencakup atau tidak memiliki nol di depan dalam bulan, hari, jam, menit, dan detik. Contohnya memberikan ilustrasi tentang hal ini.
Jika elemen yang cocok di formats
mengharuskan berisi input
tanggal tetapi bukan waktu, objek yang dihasilkan DateTimeOffset ditetapkan waktu tengah malam (0:00:00). Jika elemen yang cocok di formats
mengharuskan input tersebut berisi waktu tetapi bukan tanggal, objek yang dihasilkan DateTimeOffset ditetapkan tanggal saat ini pada sistem lokal. Jika elemen yang cocok di formats
tidak memerlukan yang input
berisi offset, offset objek yang dihasilkan DateTimeOffset tergantung pada nilai styles
parameter. Jika styles
termasuk DateTimeStyles.AssumeLocal, offset zona waktu lokal ditetapkan ke DateTimeOffset objek . Jika styles
menyertakan DateTimeStyles.AssumeUniversal, offset Waktu Universal Terkoordinasi (UTC), atau +00:00, ditetapkan ke DateTimeOffset objek . Jika tidak ada nilai yang ditentukan, offset zona waktu lokal akan digunakan.
Simbol tanggal dan waktu tertentu yang digunakan ditentukan input
oleh formatProvider
parameter . Hal yang sama berlaku untuk pola input
yang tepat jika elemen formats
pencocokan adalah string penentu format standar. Parameter formatProvider
dapat berupa salah satu dari yang berikut:
Objek CultureInfo yang mewakili budaya berdasarkan yang
input
ditafsirkan. Objek DateTimeFormatInfo yang CultureInfo.DateTimeFormat dikembalikan oleh properti menentukan simbol dan pemformatan diinput
.Objek DateTimeFormatInfo yang menentukan format data tanggal dan waktu.
Jika formatprovider
adalah null
, CultureInfo objek yang sesuai dengan budaya saat ini digunakan.
Parameter styles
menentukan apakah spasi kosong diizinkan dalam string input, menunjukkan bagaimana string tanpa komponen offset eksplisit diurai, dan mendukung konversi UTC sebagai bagian dari operasi penguraian. Semua anggota DateTimeStyles enumerasi didukung kecuali NoCurrentDateDefault. Tabel berikut ini mencantumkan efek dari setiap anggota yang didukung.
DateTimeStyles anggota |
Aktivitas |
---|---|
AdjustToUniversal | Mengurai input dan, jika perlu, mengonversinya ke UTC. Ini setara dengan mengurai string, dan kemudian memanggil DateTimeOffset.ToUniversalTime metode objek yang dikembalikan DateTimeOffset . |
AssumeLocal | Jika elemen yang cocok di formats tidak mengharuskan yang input berisi nilai offset, objek yang dikembalikan DateTimeOffset diberikan offset zona waktu lokal. Ini adalah nilai default. |
AssumeUniversal | Jika elemen yang cocok di formats tidak memerlukan yang input berisi nilai offset, objek yang dikembalikan DateTimeOffset diberikan offset UTC (+00:00). |
AllowInnerWhite | Memungkinkan input untuk menyertakan ruang putih dalam yang tidak ditentukan oleh elemen di formats . Ruang kosong ekstra dapat muncul antara komponen tanggal dan waktu dan dalam komponen individual (kecuali untuk offset) dan diabaikan saat mengurai string. |
AllowLeadingWhite | Memungkinkan input untuk menyertakan spasi di depan yang tidak ditentukan oleh elemen di formats . Ini diabaikan saat mengurai string. |
AllowTrailingWhite | Memungkinkan input untuk menyertakan spasi berikutnya yang tidak ditentukan oleh elemen di formats . Ini diabaikan saat mengurai string. |
AllowWhiteSpaces | Memungkinkan input untuk menyertakan spasi di depan, di belakang, dan dalam yang tidak ditentukan oleh elemen di formats . Semua karakter spasi putih ekstra yang tidak ditentukan dalam elemen yang cocok di formats diabaikan saat mengurai string. |
None | Menunjukkan bahwa ruang kosong tambahan tidak diizinkan di input . Spasi kosong harus muncul persis seperti yang ditentukan dalam elemen tertentu agar formats kecocokan berhasil terjadi. Ini adalah perilaku default. |
RoundtripKind | Tidak berpengaruh karena DateTimeOffset struktur tidak menyertakan Kind properti . |
Berlaku untuk
TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTimeOffset)
- Sumber:
- DateTimeOffset.cs
- Sumber:
- DateTimeOffset.cs
- Sumber:
- DateTimeOffset.cs
Mengonversi representasi string yang ditentukan dari tanggal dan waktu ke DateTimeOffset yang setara menggunakan format yang ditentukan, informasi format khusus budaya, dan gaya. Format representasi string harus sama persis dengan format yang ditentukan.
public:
static bool TryParseExact(System::String ^ input, System::String ^ format, IFormatProvider ^ formatProvider, System::Globalization::DateTimeStyles styles, [Runtime::InteropServices::Out] DateTimeOffset % result);
public static bool TryParseExact (string input, string format, IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles, out DateTimeOffset result);
public static bool TryParseExact (string? input, string? format, IFormatProvider? formatProvider, System.Globalization.DateTimeStyles styles, out DateTimeOffset result);
static member TryParseExact : string * string * IFormatProvider * System.Globalization.DateTimeStyles * DateTimeOffset -> bool
Public Shared Function TryParseExact (input As String, format As String, formatProvider As IFormatProvider, styles As DateTimeStyles, ByRef result As DateTimeOffset) As Boolean
Parameter
- input
- String
String yang berisi tanggal dan waktu untuk dikonversi.
- format
- String
Penentu format yang menentukan format yang diperlukan dari input
.
- formatProvider
- IFormatProvider
Objek yang memasok informasi pemformatan khusus budaya tentang input
.
- styles
- DateTimeStyles
Kombinasi bitwise dari nilai enumerasi yang menunjukkan format input yang diizinkan. Nilai umum yang ditentukan adalah None
.
- result
- DateTimeOffset
Ketika metode kembali, berisi DateTimeOffset yang setara dengan tanggal dan waktu input
, jika konversi berhasil, atau DateTimeOffset.MinValue, jika konversi gagal. Konversi gagal jika input
parameter adalah null
, atau tidak berisi representasi string yang valid dari tanggal dan waktu dalam format yang diharapkan yang ditentukan oleh format
dan provider
. Parameter ini diteruskan tanpa diinisialisasi.
Mengembalikan
true
input
jika parameter berhasil dikonversi; jika tidak, false
.
Pengecualian
styles
menyertakan nilai yang tidak ditentukan DateTimeStyles .
-atau-
NoCurrentDateDefault tidak didukung.
-atau-
styles
mencakup nilai yang saling eksklusif DateTimeStyles .
Contoh
Contoh berikut menggunakan TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTimeOffset) metode dengan penentu format standar dan kustom, budaya invarian, dan berbagai DateTimeStyles nilai untuk mengurai beberapa string tanggal dan waktu.
string dateString, format;
DateTimeOffset result;
IFormatProvider provider = CultureInfo.InvariantCulture;
// Parse date-only value with invariant culture and assume time is UTC.
dateString = "06/15/2008";
format = "d";
if (DateTimeOffset.TryParseExact(dateString, format, provider,
DateTimeStyles.AssumeUniversal,
out result))
Console.WriteLine("'{0}' converts to {1}.", dateString, result.ToString());
else
Console.WriteLine("'{0}' is not in the correct format.", dateString);
// Parse date-only value with leading white space.
// Should return False because only trailing white space is
// specified in method call.
dateString = " 06/15/2008";
if (DateTimeOffset.TryParseExact(dateString, format, provider,
DateTimeStyles.AllowTrailingWhite,
out result))
Console.WriteLine("'{0}' converts to {1}.", dateString, result.ToString());
else
Console.WriteLine("'{0}' is not in the correct format.", dateString);
// Parse date and time value, and allow all white space.
dateString = " 06/15/ 2008 15:15 -05:00";
format = "MM/dd/yyyy H:mm zzz";
if (DateTimeOffset.TryParseExact(dateString, format, provider,
DateTimeStyles.AllowWhiteSpaces,
out result))
Console.WriteLine("'{0}' converts to {1}.", dateString, result.ToString());
else
Console.WriteLine("'{0}' is not in the correct format.", dateString);
// Parse date and time and convert to UTC.
dateString = " 06/15/2008 15:15:30 -05:00";
format = "MM/dd/yyyy H:mm:ss zzz";
if (DateTimeOffset.TryParseExact(dateString, format, provider,
DateTimeStyles.AllowWhiteSpaces |
DateTimeStyles.AdjustToUniversal,
out result))
Console.WriteLine("'{0}' converts to {1}.", dateString, result.ToString());
else
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 +00:00.
// ' 06/15/2008' is not in the correct format.
// ' 06/15/ 2008 15:15 -05:00' converts to 6/15/2008 3:15:00 PM -05:00.
// ' 06/15/2008 15:15:30 -05:00' converts to 6/15/2008 8:15:30 PM +00:00.
let provider = CultureInfo.InvariantCulture
// Parse date-only value with invariant culture and assume time is UTC.
let dateString = "06/15/2008"
let format = "d"
match DateTimeOffset.TryParseExact(dateString, format, provider, DateTimeStyles.AssumeUniversal) with
| true, result ->
printfn $"'{dateString}' converts to {result}."
| _ ->
printfn $"'{dateString}' is not in the correct format."
// Parse date-only value with leading white space.
// Should return False because only trailing white space is
// specified in method call.
let dateString = " 06/15/2008"
match DateTimeOffset.TryParseExact(dateString, format, provider, DateTimeStyles.AllowTrailingWhite) with
| true, result ->
printfn $"'{dateString}' converts to {result}."
| _ ->
printfn $"'{dateString}' is not in the correct format."
// Parse date and time value, and allow all white space.
let dateString = " 06/15/ 2008 15:15 -05:00"
let format = "MM/dd/yyyy H:mm zzz"
match DateTimeOffset.TryParseExact(dateString, format, provider, DateTimeStyles.AllowWhiteSpaces) with
| true, result ->
printfn $"'{dateString}' converts to {result}."
| _ ->
printfn $"'{dateString}' is not in the correct format."
// Parse date and time and convert to UTC.
let dateString = " 06/15/2008 15:15:30 -05:00"
let format = "MM/dd/yyyy H:mm:ss zzz"
match DateTimeOffset.TryParseExact(dateString, format, provider, DateTimeStyles.AllowWhiteSpaces ||| DateTimeStyles.AdjustToUniversal) with
| true, result ->
printfn $"'{dateString}' converts to {result}."
| _ ->
printfn $"'{dateString}' is not in the correct format."
// The example displays the following output:
// '06/15/2008' converts to 6/15/2008 12:00:00 AM +00:00.
// ' 06/15/2008' is not in the correct format.
// ' 06/15/ 2008 15:15 -05:00' converts to 6/15/2008 3:15:00 PM -05:00.
// ' 06/15/2008 15:15:30 -05:00' converts to 6/15/2008 8:15:30 PM +00:00.
Dim dateString, format As String
Dim result As DateTimeOffset
Dim provider As CultureInfo = CultureInfo.InvariantCulture
' Parse date-only value with invariant culture and assume time is UTC.
dateString = "06/15/2008"
format = "d"
If DateTimeOffset.TryParseExact(dateString, format, provider, _
DateTimeStyles.AssumeUniversal, _
result) Then
Console.WriteLine("'{0}' converts to {1}.", dateString, result.ToString())
Else
Console.WriteLine("'{0}' is not in the correct format.", dateString)
End If
' Parse date-only value with leading white space.
' Should return False because only trailing white space is
' specified in method call.
dateString = " 06/15/2008"
If DateTimeOffset.TryParseExact(dateString, format, provider, _
DateTimeStyles.AllowTrailingWhite, _
result) Then
Console.WriteLine("'{0}' converts to {1}.", dateString, result.ToString())
Else
Console.WriteLine("'{0}' is not in the correct format.", dateString)
End If
' Parse date and time value, and allow all white space.
dateString = " 06/15/ 2008 15:15 -05:00"
format = "MM/dd/yyyy H:mm zzz"
If DateTimeOffset.TryParseExact(dateString, format, provider, _
DateTimeStyles.AllowWhiteSpaces, _
result) Then
Console.WriteLine("'{0}' converts to {1}.", dateString, result.ToString())
Else
Console.WriteLine("'{0}' is not in the correct format.", dateString)
End If
' Parse date and time and convert to UTC.
dateString = " 06/15/2008 15:15:30 -05:00"
format = "MM/dd/yyyy H:mm:ss zzz"
If DateTimeOffset.TryParseExact(dateString, format, provider, _
DateTimeStyles.AllowWhiteSpaces Or _
DateTimeStyles.AdjustToUniversal, _
result) Then
Console.WriteLine("'{0}' converts to {1}.", dateString, result.ToString())
Else
Console.WriteLine("'{0}' is not in the correct format.", dateString)
End If
' The example displays the following output:
' '06/15/2008' converts to 6/15/2008 12:00:00 AM +00:00.
' ' 06/15/2008' is not in the correct format.
' ' 06/15/ 2008 15:15 -05:00' converts to 6/15/2008 3:15:00 PM -05:00.
' ' 06/15/2008 15:15:30 -05:00' converts to 6/15/2008 8:15:30 PM +00:00.
Contoh berikut menggunakan berbagai DateTimeStyles nilai untuk mengurai array string yang diharapkan sesuai dengan ISO 8601. Seperti yang ditunjukkan oleh output dari contoh, string yang dalam format yang tepat gagal diurai jika:
mereka berisi spasi kosong, dan bendera yang sesuai DateTimeStyles (seperti DateTimeStyles.AllowWhiteSpaces belum disediakan dalam panggilan metode.
mereka berisi elemen tanggal dan waktu yang berada di luar rentang.
String yang tidak menentukan offset UTC diasumsikan memiliki offset zona waktu lokal (dalam hal ini, -07:00, yang mencerminkan offset zona Waktu Siang Hari Pasifik) kecuali DateTimeStyles.AssumeUniversal bendera disediakan dalam panggilan metode. Dalam hal ini, mereka diasumsikan sebagai Universal Coordinated Time.
open System
open System.Globalization
let parseWithISO8601 dateStrings styles =
printfn $"Parsing with {styles}:"
for dateString in dateStrings do
match DateTimeOffset.TryParseExact(dateString, "O", null, styles) with
| true, date ->
printfn $""" {dateString,-35} --> {date.ToString "yyyy-MM-dd HH:mm:ss.FF zzz"}"""
| _ ->
printfn $" Unable to convert '{dateString}'"
let dateStrings =
[ "2018-08-18T12:45:16.0000000Z"
"2018/08/18T12:45:16.0000000Z"
"2018-18-08T12:45:16.0000000Z"
"2018-08-18T12:45:16.0000000"
" 2018-08-18T12:45:16.0000000Z "
"2018-08-18T12:45:16.0000000+02:00"
"2018-08-18T12:45:16.0000000-07:00" ]
parseWithISO8601 dateStrings DateTimeStyles.None
printfn "\n-----\n"
parseWithISO8601 dateStrings DateTimeStyles.AllowWhiteSpaces
printfn "\n-----\n"
parseWithISO8601 dateStrings DateTimeStyles.AdjustToUniversal
printfn "\n-----\n"
parseWithISO8601 dateStrings DateTimeStyles.AssumeLocal
printfn "\n-----\n"
parseWithISO8601 dateStrings DateTimeStyles.AssumeUniversal
// The example displays the following output:
// Parsing with None:
// 2018-08-18T12:45:16.0000000Z --> 2018-08-18 12:45:16 +00:00
// Unable to convert '2018/08/18T12:45:16.0000000Z'
// Unable to convert '2018-18-08T12:45:16.0000000Z'
// 2018-08-18T12:45:16.0000000 --> 2018-08-18 12:45:16 -07:00
// Unable to convert ' 2018-08-18T12:45:16.0000000Z '
// 2018-08-18T12:45:16.0000000+02:00 --> 2018-08-18 12:45:16 +02:00
// 2018-08-18T12:45:16.0000000-07:00 --> 2018-08-18 12:45:16 -07:00
//
// -----
//
// Parsing with AllowWhiteSpaces:
// 2018-08-18T12:45:16.0000000Z --> 2018-08-18 12:45:16 +00:00
// Unable to convert '2018/08/18T12:45:16.0000000Z'
// Unable to convert '2018-18-08T12:45:16.0000000Z'
// 2018-08-18T12:45:16.0000000 --> 2018-08-18 12:45:16 -07:00
// 2018-08-18T12:45:16.0000000Z --> 2018-08-18 12:45:16 +00:00
// 2018-08-18T12:45:16.0000000+02:00 --> 2018-08-18 12:45:16 +02:00
// 2018-08-18T12:45:16.0000000-07:00 --> 2018-08-18 12:45:16 -07:00
//
// -----
//
// Parsing with AdjustToUniversal:
// 2018-08-18T12:45:16.0000000Z --> 2018-08-18 12:45:16 +00:00
// Unable to convert '2018/08/18T12:45:16.0000000Z'
// Unable to convert '2018-18-08T12:45:16.0000000Z'
// 2018-08-18T12:45:16.0000000 --> 2018-08-18 19:45:16 +00:00
// Unable to convert ' 2018-08-18T12:45:16.0000000Z '
// 2018-08-18T12:45:16.0000000+02:00 --> 2018-08-18 10:45:16 +00:00
// 2018-08-18T12:45:16.0000000-07:00 --> 2018-08-18 19:45:16 +00:00
//
// -----
//
// Parsing with AssumeLocal:
// 2018-08-18T12:45:16.0000000Z --> 2018-08-18 12:45:16 +00:00
// Unable to convert '2018/08/18T12:45:16.0000000Z'
// Unable to convert '2018-18-08T12:45:16.0000000Z'
// 2018-08-18T12:45:16.0000000 --> 2018-08-18 12:45:16 -07:00
// Unable to convert ' 2018-08-18T12:45:16.0000000Z '
// 2018-08-18T12:45:16.0000000+02:00 --> 2018-08-18 12:45:16 +02:00
// 2018-08-18T12:45:16.0000000-07:00 --> 2018-08-18 12:45:16 -07:00
//
// -----
//
// Parsing with AssumeUniversal:
// 2018-08-18T12:45:16.0000000Z --> 2018-08-18 12:45:16 +00:00
// Unable to convert '2018/08/18T12:45:16.0000000Z'
// Unable to convert '2018-18-08T12:45:16.0000000Z'
// 2018-08-18T12:45:16.0000000 --> 2018-08-18 12:45:16 +00:00
// Unable to convert ' 2018-08-18T12:45:16.0000000Z '
// 2018-08-18T12:45:16.0000000+02:00 --> 2018-08-18 12:45:16 +02:00
// 2018-08-18T12:45:16.0000000-07:00 --> 2018-08-18 12:45:16 -07:00
using System;
using System.Globalization;
public class Example
{
public static void Main()
{
string[] dateStrings = { "2018-08-18T12:45:16.0000000Z",
"2018/08/18T12:45:16.0000000Z",
"2018-18-08T12:45:16.0000000Z",
"2018-08-18T12:45:16.0000000",
" 2018-08-18T12:45:16.0000000Z ",
"2018-08-18T12:45:16.0000000+02:00",
"2018-08-18T12:45:16.0000000-07:00" };
ParseWithISO8601(dateStrings, DateTimeStyles.None);
Console.WriteLine("\n-----\n");
ParseWithISO8601(dateStrings, DateTimeStyles.AllowWhiteSpaces);
Console.WriteLine("\n-----\n");
ParseWithISO8601(dateStrings, DateTimeStyles.AdjustToUniversal);
Console.WriteLine("\n-----\n");
ParseWithISO8601(dateStrings, DateTimeStyles.AssumeLocal);
Console.WriteLine("\n-----\n");
ParseWithISO8601(dateStrings, DateTimeStyles.AssumeUniversal); }
private static void ParseWithISO8601(string[] dateStrings, DateTimeStyles styles)
{
Console.WriteLine($"Parsing with {styles}:");
DateTimeOffset date;
foreach (var dateString in dateStrings)
{
if (DateTimeOffset.TryParseExact(dateString, "O", null, styles, out date))
{
Console.WriteLine($" {dateString,-35} --> {date:yyyy-MM-dd HH:mm:ss.FF zzz}");
}
else
{
Console.WriteLine($" Unable to convert '{dateString}'");
}
}
}
}
// The example displays the following output:
// Parsing with None:
// 2018-08-18T12:45:16.0000000Z --> 2018-08-18 12:45:16 +00:00
// Unable to convert '2018/08/18T12:45:16.0000000Z'
// Unable to convert '2018-18-08T12:45:16.0000000Z'
// 2018-08-18T12:45:16.0000000 --> 2018-08-18 12:45:16 -07:00
// Unable to convert ' 2018-08-18T12:45:16.0000000Z '
// 2018-08-18T12:45:16.0000000+02:00 --> 2018-08-18 12:45:16 +02:00
// 2018-08-18T12:45:16.0000000-07:00 --> 2018-08-18 12:45:16 -07:00
//
// -----
//
// Parsing with AllowWhiteSpaces:
// 2018-08-18T12:45:16.0000000Z --> 2018-08-18 12:45:16 +00:00
// Unable to convert '2018/08/18T12:45:16.0000000Z'
// Unable to convert '2018-18-08T12:45:16.0000000Z'
// 2018-08-18T12:45:16.0000000 --> 2018-08-18 12:45:16 -07:00
// 2018-08-18T12:45:16.0000000Z --> 2018-08-18 12:45:16 +00:00
// 2018-08-18T12:45:16.0000000+02:00 --> 2018-08-18 12:45:16 +02:00
// 2018-08-18T12:45:16.0000000-07:00 --> 2018-08-18 12:45:16 -07:00
//
// -----
//
// Parsing with AdjustToUniversal:
// 2018-08-18T12:45:16.0000000Z --> 2018-08-18 12:45:16 +00:00
// Unable to convert '2018/08/18T12:45:16.0000000Z'
// Unable to convert '2018-18-08T12:45:16.0000000Z'
// 2018-08-18T12:45:16.0000000 --> 2018-08-18 19:45:16 +00:00
// Unable to convert ' 2018-08-18T12:45:16.0000000Z '
// 2018-08-18T12:45:16.0000000+02:00 --> 2018-08-18 10:45:16 +00:00
// 2018-08-18T12:45:16.0000000-07:00 --> 2018-08-18 19:45:16 +00:00
//
// -----
//
// Parsing with AssumeLocal:
// 2018-08-18T12:45:16.0000000Z --> 2018-08-18 12:45:16 +00:00
// Unable to convert '2018/08/18T12:45:16.0000000Z'
// Unable to convert '2018-18-08T12:45:16.0000000Z'
// 2018-08-18T12:45:16.0000000 --> 2018-08-18 12:45:16 -07:00
// Unable to convert ' 2018-08-18T12:45:16.0000000Z '
// 2018-08-18T12:45:16.0000000+02:00 --> 2018-08-18 12:45:16 +02:00
// 2018-08-18T12:45:16.0000000-07:00 --> 2018-08-18 12:45:16 -07:00
//
// -----
//
// Parsing with AssumeUniversal:
// 2018-08-18T12:45:16.0000000Z --> 2018-08-18 12:45:16 +00:00
// Unable to convert '2018/08/18T12:45:16.0000000Z'
// Unable to convert '2018-18-08T12:45:16.0000000Z'
// 2018-08-18T12:45:16.0000000 --> 2018-08-18 12:45:16 +00:00
// Unable to convert ' 2018-08-18T12:45:16.0000000Z '
// 2018-08-18T12:45:16.0000000+02:00 --> 2018-08-18 12:45:16 +02:00
// 2018-08-18T12:45:16.0000000-07:00 --> 2018-08-18 12:45:16 -07:00
Imports System.Globalization
Public Module Example
Public Sub Main()
Dim dateStrings() = { "2018-08-18T12:45:16.0000000Z",
"2018/08/18T12:45:16.0000000Z",
"2018-18-08T12:45:16.0000000Z",
"2018-08-18T12:45:16.0000000",
" 2018-08-18T12:45:16.0000000Z ",
"2018-08-18T12:45:16.0000000+02:00",
"2018-08-18T12:45:16.0000000-07:00" }
ParseWithISO8601(dateStrings, DateTimeStyles.None)
Console.WriteLine($"{vbCrLf}-----{vbCrLf}")
ParseWithISO8601(dateStrings, DateTimeStyles.AllowWhiteSpaces)
Console.WriteLine($"{vbCrLf}-----{vbCrLf}")
ParseWithISO8601(dateStrings, DateTimeStyles.AdjustToUniversal)
Console.WriteLine($"{vbCrLf}-----{vbCrLf}")
ParseWithISO8601(dateStrings, DateTimeStyles.AssumeLocal)
Console.WriteLine($"{vbCrLf}-----{vbCrLf}")
ParseWithISO8601(dateStrings, DateTimeStyles.AssumeUniversal)
End Sub
Private Sub ParseWithISO8601(dateStrings() As String, styles As DateTimeStyles)
Console.WriteLine($"Parsing with {styles}:")
Dim dat As DateTimeOffset
For Each dateStr In dateStrings
If DateTimeOffset.TryParseExact(dateStr, "O", Nothing, styles, dat) Then
Console.WriteLine($" {dateStr,-35} --> {dat:yyyy-MM-dd HH:mm:ss.FF zzz}")
Else
Console.WriteLine($" Unable to convert '{dateStr}'")
End If
Next
End Sub
End Module
' The example displays the following output:
' Parsing with None:
' 2018-08-18T12:45:16.0000000Z --> 2018-08-18 12:45:16 +00:00
' Unable to convert '2018/08/18T12:45:16.0000000Z'
' Unable to convert '2018-18-08T12:45:16.0000000Z'
' 2018-08-18T12:45:16.0000000 --> 2018-08-18 12:45:16 -07:00
' Unable to convert ' 2018-08-18T12:45:16.0000000Z '
' 2018-08-18T12:45:16.0000000+02:00 --> 2018-08-18 12:45:16 +02:00
' 2018-08-18T12:45:16.0000000-07:00 --> 2018-08-18 12:45:16 -07:00
'
' -----
'
' Parsing with AllowWhiteSpaces:
' 2018-08-18T12:45:16.0000000Z --> 2018-08-18 12:45:16 +00:00
' Unable to convert '2018/08/18T12:45:16.0000000Z'
' Unable to convert '2018-18-08T12:45:16.0000000Z'
' 2018-08-18T12:45:16.0000000 --> 2018-08-18 12:45:16 -07:00
' 2018-08-18T12:45:16.0000000Z --> 2018-08-18 12:45:16 +00:00
' 2018-08-18T12:45:16.0000000+02:00 --> 2018-08-18 12:45:16 +02:00
' 2018-08-18T12:45:16.0000000-07:00 --> 2018-08-18 12:45:16 -07:00
'
' -----
'
' Parsing with AdjustToUniversal:
' 2018-08-18T12:45:16.0000000Z --> 2018-08-18 12:45:16 +00:00
' Unable to convert '2018/08/18T12:45:16.0000000Z'
' Unable to convert '2018-18-08T12:45:16.0000000Z'
' 2018-08-18T12:45:16.0000000 --> 2018-08-18 19:45:16 +00:00
' Unable to convert ' 2018-08-18T12:45:16.0000000Z '
' 2018-08-18T12:45:16.0000000+02:00 --> 2018-08-18 10:45:16 +00:00
' 2018-08-18T12:45:16.0000000-07:00 --> 2018-08-18 19:45:16 +00:00
'
' -----
'
' Parsing with AssumeLocal:
' 2018-08-18T12:45:16.0000000Z --> 2018-08-18 12:45:16 +00:00
' Unable to convert '2018/08/18T12:45:16.0000000Z'
' Unable to convert '2018-18-08T12:45:16.0000000Z'
' 2018-08-18T12:45:16.0000000 --> 2018-08-18 12:45:16 -07:00
' Unable to convert ' 2018-08-18T12:45:16.0000000Z '
' 2018-08-18T12:45:16.0000000+02:00 --> 2018-08-18 12:45:16 +02:00
' 2018-08-18T12:45:16.0000000-07:00 --> 2018-08-18 12:45:16 -07:00
'
' -----
'
' Parsing with AssumeUniversal:
' 2018-08-18T12:45:16.0000000Z --> 2018-08-18 12:45:16 +00:00
' Unable to convert '2018/08/18T12:45:16.0000000Z'
' Unable to convert '2018-18-08T12:45:16.0000000Z'
' 2018-08-18T12:45:16.0000000 --> 2018-08-18 12:45:16 +00:00
' Unable to convert ' 2018-08-18T12:45:16.0000000Z '
' 2018-08-18T12:45:16.0000000+02:00 --> 2018-08-18 12:45:16 +02:00
' 2018-08-18T12:45:16.0000000-07:00 --> 2018-08-18 12:45:16 -07:00
Keterangan
Kelebihan beban TryParseExact(String, String, IFormatProvider, DateTimeStyles, DateTimeOffset) metode ini seperti DateTimeOffset.ParseExact(String, String, IFormatProvider, DateTimeStyles) metode , kecuali bahwa metode ini tidak memberikan pengecualian jika konversi gagal. Ini mengurai representasi string tanggal dan waktu yang harus sama persis dengan pola yang ditentukan oleh format
parameter. input
Jika string tidak cocok dengan pola ini, dengan beberapa variasi yang mungkin dalam spasi putih yang ditentukan oleh styles
parameter, operasi penguraian gagal dan metode mengembalikan false
.
Parameter format
adalah string yang berisi penentu format standar tunggal atau satu atau beberapa penentu format kustom yang menentukan pola yang diperlukan dari input
. Untuk detail tentang kode pemformatan yang valid, lihat String Format Tanggal dan Waktu Standar dan String Format Tanggal dan Waktu Kustom. Jika format
menyertakan z
, , zz
atau zzz
penentu format kustom untuk menunjukkan bahwa offset harus ada di input
, offset tersebut harus menyertakan tanda negatif atau tanda positif. Jika tanda hilang, operasi penguraian gagal dan metode mengembalikan false
.
Jika format
memerlukan yang input
berisi tanggal tetapi bukan waktu, objek yang dihasilkan DateTimeOffset ditetapkan waktu tengah malam (0:00:00). Jika format
memerlukan yang input
berisi waktu tetapi bukan tanggal, objek yang DateTimeOffset dihasilkan ditetapkan tanggal saat ini pada sistem lokal. Jika format
tidak memerlukan yang input
berisi offset, offset objek yang dihasilkan DateTimeOffset tergantung pada nilai styles
parameter. Jika styles
menyertakan AssumeLocal, offset zona waktu lokal ditetapkan ke DateTimeOffset objek . Jika styles
menyertakan AssumeUniversal, offset Waktu Universal Terkoordinasi (UTC), atau +00:00, ditetapkan ke DateTimeOffset objek . Jika tidak ada nilai yang ditentukan, offset zona waktu lokal akan digunakan.
Simbol dan string tanggal dan waktu tertentu yang digunakan ditentukan input
oleh formatProvider
parameter . Hal yang sama berlaku untuk pola yang tepat jika input
format
adalah string penentu format standar. Parameter formatProvider
dapat berupa salah satu hal berikut:
Objek CultureInfo yang mewakili budaya berdasarkan yang
input
ditafsirkan. Objek DateTimeFormatInfo yang CultureInfo.DateTimeFormat dikembalikan oleh properti menentukan simbol dan format standar yang diizinkan dalaminput
.Objek DateTimeFormatInfo yang menentukan format data tanggal dan waktu.
Jika formatprovider
adalah null
, CultureInfo objek yang sesuai dengan budaya saat ini digunakan.
Parameter styles
menentukan apakah spasi putih diizinkan dalam string input, menunjukkan bagaimana string tanpa komponen offset eksplisit diurai, dan mendukung konversi UTC sebagai bagian dari operasi penguraian. Semua anggota DateTimeStyles enumerasi didukung kecuali NoCurrentDateDefault. Tabel berikut ini mencantumkan efek dari setiap anggota yang didukung.
DateTimeStyles anggota |
Aktivitas |
---|---|
AdjustToUniversal | Mengurai input dan, jika perlu, mengonversinya menjadi UTC. Ini setara dengan mengurai string, dan kemudian memanggil DateTimeOffset.ToUniversalTime metode objek yang dikembalikan DateTimeOffset . |
AssumeLocal | Jika format tidak memerlukan yang input berisi nilai offset, objek yang dikembalikan DateTimeOffset diberi offset zona waktu lokal. Ini adalah perilaku default. |
AssumeUniversal | Jika format tidak memerlukan yang input berisi nilai offset, objek yang dikembalikan DateTimeOffset diberi offset UTC (+00:00). |
AllowInnerWhite | Memungkinkan input untuk menyertakan ruang putih dalam yang tidak ditentukan oleh format. Ruang kosong ekstra dapat muncul antara komponen tanggal dan waktu dan dalam komponen individual, selain offset, dan diabaikan saat mengurai string. |
AllowLeadingWhite | Memungkinkan input untuk menyertakan spasi di depan yang tidak ditentukan oleh format . Ini diabaikan saat mengurai string. |
AllowTrailingWhite | Memungkinkan input untuk menyertakan spasi berikutnya yang tidak ditentukan oleh format . Ini diabaikan saat mengurai string. |
AllowWhiteSpaces | Memungkinkan input untuk menyertakan spasi di depan, di belakang, dan dalam yang tidak ditentukan oleh format . Semua karakter spasi putih ekstra yang tidak ditentukan di format diabaikan saat mengurai string. |
None | Menunjukkan bahwa ruang kosong tambahan tidak diizinkan di input . Spasi kosong harus muncul persis seperti yang ditentukan dalam format . Ini adalah perilaku default. |
RoundtripKind | Tidak berpengaruh, karena DateTimeOffset struktur tidak menyertakan Kind properti . |
Catatan Bagi Pemanggil
Dalam .NET Framework 4, 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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk