DateTime.ParseExact 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 ke DateTime yang setara. Format representasi string harus cocok dengan format tertentu persis atau pengecualian dilemparkan.
Overload
| Nama | Deskripsi |
|---|---|
| ParseExact(String, String, IFormatProvider) |
Mengonversi representasi string yang ditentukan dari tanggal dan waktu ke DateTime yang setara menggunakan format yang ditentukan dan informasi format khusus budaya. Format representasi string harus sama persis dengan format yang ditentukan. |
| ParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles) |
Mengonversi representasi rentang yang ditentukan dari tanggal dan waktu ke DateTime yang setara menggunakan format yang ditentukan, informasi format khusus budaya, dan gaya. Format representasi string harus cocok dengan format yang ditentukan tepat atau pengecualian dilemparkan. |
| ParseExact(ReadOnlySpan<Char>, String[], IFormatProvider, DateTimeStyles) |
Mengonversi representasi rentang tanggal dan waktu yang ditentukan 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 tepat atau pengecualian dilemparkan. |
| ParseExact(String, String, IFormatProvider, DateTimeStyles) |
Mengonversi representasi string yang ditentukan dari tanggal dan waktu ke DateTime yang setara menggunakan format yang ditentukan, informasi format khusus budaya, dan gaya. Format representasi string harus cocok dengan format yang ditentukan tepat atau pengecualian dilemparkan. |
| ParseExact(String, String[], IFormatProvider, DateTimeStyles) |
Mengonversi representasi string yang ditentukan dari tanggal dan waktu ke DateTime yang setara menggunakan array format yang ditentukan, informasi format khusus budaya, dan gaya. Format representasi string harus cocok dengan setidaknya salah satu format yang ditentukan tepat atau pengecualian dilemparkan. |
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.
ParseExact(String, String, IFormatProvider)
- 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 format yang ditentukan dan informasi format khusus budaya. Format representasi string harus sama persis dengan format yang ditentukan.
public:
static DateTime ParseExact(System::String ^ s, System::String ^ format, IFormatProvider ^ provider);
public static DateTime ParseExact(string s, string format, IFormatProvider provider);
public static DateTime ParseExact(string s, string format, IFormatProvider? provider);
static member ParseExact : string * string * IFormatProvider -> DateTime
Public Shared Function ParseExact (s As String, format As String, provider As IFormatProvider) As DateTime
Parameter
- s
- String
String yang berisi tanggal dan waktu untuk dikonversi.
- format
- String
Penentu format yang menentukan format yang diperlukan dari s. Untuk informasi selengkapnya, lihat bagian Keterangan.
- provider
- IFormatProvider
Objek yang memasok informasi format khusus budaya tentang s.
Mengembalikan
Objek yang setara dengan tanggal dan waktu yang terkandung dalam s, seperti yang ditentukan oleh format dan provider.
Pengecualian
s atau format adalah null.
s atau format adalah string kosong.
-atau-
s tidak berisi tanggal dan waktu yang sesuai dengan pola yang ditentukan dalam format.
-atau-
Komponen jam dan penunjuk AM/PM di s tidak setuju.
Contoh
Contoh berikut menunjukkan ParseExact metode .
using System;
using System.Globalization;
public class Example
{
public static void Main()
{
string dateString, format;
DateTime result;
CultureInfo provider = CultureInfo.InvariantCulture;
// Parse date-only value with invariant culture.
dateString = "06/15/2008";
format = "d";
try {
result = DateTime.ParseExact(dateString, format, provider);
Console.WriteLine("{0} converts to {1}.", dateString, result.ToString());
}
catch (FormatException) {
Console.WriteLine("{0} is not in the correct format.", dateString);
}
// Parse date-only value without leading zero in month using "d" format.
// Should throw a FormatException because standard short date pattern of
// invariant culture requires two-digit month.
dateString = "6/15/2008";
try {
result = DateTime.ParseExact(dateString, format, provider);
Console.WriteLine("{0} converts to {1}.", dateString, result.ToString());
}
catch (FormatException) {
Console.WriteLine("{0} is not in the correct format.", dateString);
}
// Parse date and time with custom specifier.
dateString = "Sun 15 Jun 2008 8:30 AM -06:00";
format = "ddd dd MMM yyyy h:mm tt zzz";
try {
result = DateTime.ParseExact(dateString, format, provider);
Console.WriteLine("{0} converts to {1}.", dateString, result.ToString());
}
catch (FormatException) {
Console.WriteLine("{0} is not in the correct format.", dateString);
}
// Parse date and time with offset but without offset's minutes.
// Should throw a FormatException because "zzz" specifier requires leading
// zero in hours.
dateString = "Sun 15 Jun 2008 8:30 AM -06";
try {
result = DateTime.ParseExact(dateString, format, provider);
Console.WriteLine("{0} converts to {1}.", dateString, result.ToString());
}
catch (FormatException) {
Console.WriteLine("{0} is not in the correct format.", dateString);
}
dateString = "15/06/2008 08:30";
format = "g";
provider = new CultureInfo("fr-FR");
try {
result = DateTime.ParseExact(dateString, format, provider);
Console.WriteLine("{0} converts to {1}.", dateString, result.ToString());
}
catch (FormatException) {
Console.WriteLine("{0} is not in the correct format.", dateString);
}
// Parse a date that includes seconds and milliseconds
// by using the French (France) and invariant cultures.
dateString = "18/08/2015 06:30:15.006542";
format = "dd/MM/yyyy HH:mm:ss.ffffff";
try {
result = DateTime.ParseExact(dateString, format, provider);
Console.WriteLine("{0} converts to {1}.", dateString, result.ToString());
}
catch (FormatException) {
Console.WriteLine("{0} is not in the correct format.", dateString);
}
}
}
// The example displays the following output:
// 06/15/2008 converts to 6/15/2008 12:00:00 AM.
// 6/15/2008 is not in the correct format.
// Sun 15 Jun 2008 8:30 AM -06:00 converts to 6/15/2008 7:30:00 AM.
// Sun 15 Jun 2008 8:30 AM -06 is not in the correct format.
// 15/06/2008 08:30 converts to 6/15/2008 8:30:00 AM.
// 18/08/2015 06:30:15.006542 converts to 8/18/2015 6:30:15 AM.
open System
open System.Globalization
[<EntryPoint>]
let main _ =
let provider = CultureInfo.InvariantCulture
// Parse date-only value with invariant culture.
let dateString = "06/15/2008"
let format = "d"
try
let result = DateTime.ParseExact(dateString, format, provider)
printfn $"{dateString} converts to {result}."
with :? FormatException ->
printfn $"{dateString} is not in the correct format."
// Parse date-only value without leading zero in month using "d" format.
// Should throw a FormatException because standard short date pattern of
// invariant culture requires two-digit month.
let dateString = "6/15/2008"
try
let result = DateTime.ParseExact(dateString, format, provider)
printfn $"{dateString} converts to {result}."
with :? FormatException ->
printfn $"{dateString} is not in the correct format."
// Parse date and time with custom specifier.
let dateString = "Sun 15 Jun 2008 8:30 AM -06:00"
let format = "ddd dd MMM yyyy h:mm tt zzz"
try
let result = DateTime.ParseExact(dateString, format, provider)
printfn $"{dateString} converts to {result}."
with :? FormatException ->
printfn $"{dateString} is not in the correct format."
// Parse date and time with offset but without offset's minutes.
// Should throw a FormatException because "zzz" specifier requires leading
// zero in hours.
let dateString = "Sun 15 Jun 2008 8:30 AM -06"
try
let result = DateTime.ParseExact(dateString, format, provider)
printfn $"{dateString} converts to {result}."
with :? FormatException ->
printfn $"{dateString} is not in the correct format."
let dateString = "15/06/2008 08:30"
let format = "g"
let provider = CultureInfo "fr-FR"
try
let result = DateTime.ParseExact(dateString, format, provider)
printfn $"{dateString} converts to {result}."
with :? FormatException ->
printfn $"{dateString} is not in the correct format."
// Parse a date that includes seconds and milliseconds
// by using the French (France) and invariant cultures.
let dateString = "18/08/2015 06:30:15.006542"
let format = "dd/MM/yyyy HH:mm:ss.ffffff"
try
let result = DateTime.ParseExact(dateString, format, provider)
printfn $"{dateString} converts to {result}."
with :? FormatException ->
printfn $"{dateString} is not in the correct format."
0
// The example displays the following output:
// 06/15/2008 converts to 6/15/2008 12:00:00 AM.
// 6/15/2008 is not in the correct format.
// Sun 15 Jun 2008 8:30 AM -06:00 converts to 6/15/2008 7:30:00 AM.
// Sun 15 Jun 2008 8:30 AM -06 is not in the correct format.
// 15/06/2008 08:30 converts to 6/15/2008 8:30:00 AM.
// 18/08/2015 06:30:15.006542 converts to 8/18/2015 6:30:15 AM.
Imports System.Globalization
Module Example
Public Sub Main()
Dim dateString, format As String
Dim result As Date
Dim provider As CultureInfo = CultureInfo.InvariantCulture
' Parse date-only value with invariant culture.
dateString = "06/15/2008"
format = "d"
Try
result = Date.ParseExact(dateString, format, provider)
Console.WriteLine("{0} converts to {1}.", dateString, result.ToString())
Catch e As FormatException
Console.WriteLine("{0} is not in the correct format.", dateString)
End Try
' Parse date-only value without leading zero in month using "d" format.
' Should throw a FormatException because standard short date pattern of
' invariant culture requires two-digit month.
dateString = "6/15/2008"
Try
result = Date.ParseExact(dateString, format, provider)
Console.WriteLine("{0} converts to {1}.", dateString, result.ToString())
Catch e As FormatException
Console.WriteLine("{0} is not in the correct format.", dateString)
End Try
' Parse date and time with custom specifier.
dateString = "Sun 15 Jun 2008 8:30 AM -06:00"
format = "ddd dd MMM yyyy h:mm tt zzz"
Try
result = Date.ParseExact(dateString, format, provider)
Console.WriteLine("{0} converts to {1}.", dateString, result.ToString())
Catch e As FormatException
Console.WriteLine("{0} is not in the correct format.", dateString)
End Try
' Parse date and time with offset but without offset's minutes.
' Should throw a FormatException because "zzz" specifier requires leading
' zero in hours.
dateString = "Sun 15 Jun 2008 8:30 AM -06"
Try
result = Date.ParseExact(dateString, format, provider)
Console.WriteLine("{0} converts to {1}.", dateString, result.ToString())
Catch e As FormatException
Console.WriteLine("{0} is not in the correct format.", dateString)
End Try
' Parse a date string using the French (France) culture.
dateString = "15/06/2008 08:30"
format = "g"
provider = New CultureInfo("fr-FR")
Try
result = Date.ParseExact(dateString, format, provider)
Console.WriteLine("{0} converts to {1}.", dateString, result.ToString())
Catch e As FormatException
Console.WriteLine("{0} is not in the correct format.", dateString)
End Try
' Parse a date that includes seconds and milliseconds
' by using the French (France) and invariant cultures.
dateString = "18/08/2015 06:30:15.006542"
format = "dd/MM/yyyy HH:mm:ss.ffffff"
Try
result = Date.ParseExact(dateString, format, provider)
Console.WriteLine("{0} converts to {1}.", dateString, result.ToString())
Catch e As FormatException
Console.WriteLine("{0} is not in the correct format.", dateString)
End Try
End Sub
End Module
' The example displays the following output:
' 06/15/2008 converts to 6/15/2008 12:00:00 AM.
' 6/15/2008 is not in the correct format.
' Sun 15 Jun 2008 8:30 AM -06:00 converts to 6/15/2008 7:30:00 AM.
' Sun 15 Jun 2008 8:30 AM -06 is not in the correct format.
' 15/06/2008 08:30 converts to 6/15/2008 8:30:00 AM.
' 18/08/2015 06:30:15.006542 converts to 8/18/2015 6:30:15 AM.
Keterangan
Metode ini DateTime.ParseExact(String, String, IFormatProvider) menguraikan representasi string tanggal, yang harus dalam format yang ditentukan oleh format parameter . Ini juga mengharuskan <elemen Tanggal> dan <Waktu> dari representasi string tanggal dan waktu muncul dalam urutan yang ditentukan oleh format, dan yang s tidak memiliki spasi kosong selain yang diizinkan oleh format. Jika format menentukan tanggal tanpa elemen waktu dan operasi penguraian berhasil, nilai yang dihasilkan DateTime memiliki waktu tengah malam (00:00:00). Jika format menentukan waktu tanpa elemen tanggal dan operasi penguraian berhasil, nilai yang DateTime dihasilkan memiliki tanggal DateTime.Now.Date.
Jika s tidak mewakili waktu di zona waktu tertentu dan operasi penguraian berhasil, Kind properti dari nilai yang dikembalikan DateTime adalah DateTimeKind.Unspecified. Jika s mewakili waktu dalam zona waktu tertentu dan format memungkinkan informasi zona waktu ada (misalnya, jika format sama dengan penentu format kustom "o", "r", atau "u", atau "u", atau jika berisi penentu format kustom "z", "zz", atau "zzz"), Kind properti dari nilai yang dikembalikan DateTime adalah DateTimeKind.Local.
Parameter format adalah string yang berisi penentu format standar tunggal, atau satu atau beberapa penentu format kustom yang menentukan format yang diperlukan dari s. Untuk detail tentang kode pemformatan yang valid, lihat String Format Tanggal dan Waktu Standar atau String Format Tanggal dan Waktu Kustom.
Nota
Jika format adalah pola format kustom yang tidak menyertakan pemisah tanggal atau waktu (seperti "yyyyMMddHHmm"), gunakan budaya invarian untuk provider parameter dan bentuk terluas dari setiap penentu format kustom. Misalnya, jika Anda ingin menentukan jam dalam pola format, 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 didefinisikan s oleh provider parameter, seperti format yang tepat jika sformat adalah string penentu format standar. Parameter provider dapat berupa salah satu hal berikut:
Objek CultureInfo yang mewakili budaya yang digunakan untuk menafsirkan
s. Objek DateTimeFormatInfo yang dikembalikan oleh propertinya DateTimeFormat menentukan simbol dan pemformatan dis.Objek DateTimeFormatInfo yang menentukan format data tanggal dan waktu.
Implementasi kustom IFormatProvider yang metodenya GetFormat mengembalikan CultureInfo objek atau DateTimeFormatInfo objek yang menyediakan informasi pemformatan.
Jika provider adalah null, CultureInfo objek yang sesuai dengan budaya saat ini digunakan.
Catatan Bagi Pemanggil
Dalam .NET Framework 4, ParseExact metode melempar jika string yang FormatException 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
- TryParseExact
- CultureInfo
- DateTimeFormatInfo
- Mengurai String Tanggal dan Waktu di .NET Framework
- String Format Tanggal dan Waktu Standar
- String Format Tanggal dan Waktu Kustom
Berlaku untuk
ParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles)
- Sumber:
- DateTime.cs
- Sumber:
- DateTime.cs
- Sumber:
- DateTime.cs
- Sumber:
- DateTime.cs
- Sumber:
- DateTime.cs
Mengonversi representasi rentang yang ditentukan dari tanggal dan waktu ke DateTime yang setara menggunakan format yang ditentukan, informasi format khusus budaya, dan gaya. Format representasi string harus cocok dengan format yang ditentukan tepat atau pengecualian dilemparkan.
public static DateTime ParseExact(ReadOnlySpan<char> s, ReadOnlySpan<char> format, IFormatProvider? provider, System.Globalization.DateTimeStyles style = System.Globalization.DateTimeStyles.None);
public static DateTime ParseExact(ReadOnlySpan<char> s, ReadOnlySpan<char> format, IFormatProvider provider, System.Globalization.DateTimeStyles style = System.Globalization.DateTimeStyles.None);
static member ParseExact : ReadOnlySpan<char> * ReadOnlySpan<char> * IFormatProvider * System.Globalization.DateTimeStyles -> DateTime
Public Shared Function ParseExact (s As ReadOnlySpan(Of Char), format As ReadOnlySpan(Of Char), provider As IFormatProvider, Optional style As DateTimeStyles = System.Globalization.DateTimeStyles.None) As DateTime
Parameter
- s
- ReadOnlySpan<Char>
Rentang yang berisi karakter yang mewakili tanggal dan waktu untuk dikonversi.
- format
- ReadOnlySpan<Char>
Rentang yang berisi karakter yang mewakili penentu format yang menentukan format yang diperlukan dari s.
- provider
- IFormatProvider
Objek yang memasok informasi pemformatan khusus budaya tentang s.
- style
- DateTimeStyles
Kombinasi bitwise dari nilai enumerasi yang menyediakan informasi tambahan tentang s, tentang elemen gaya yang mungkin ada di s, atau tentang konversi dari s ke DateTime nilai. Nilai umum yang akan ditentukan adalah None.
Mengembalikan
Objek yang setara dengan tanggal dan waktu yang terkandung dalam s, seperti yang ditentukan oleh format, , providerdan style.
Berlaku untuk
ParseExact(ReadOnlySpan<Char>, String[], IFormatProvider, DateTimeStyles)
- Sumber:
- DateTime.cs
- Sumber:
- DateTime.cs
- Sumber:
- DateTime.cs
- Sumber:
- DateTime.cs
- Sumber:
- DateTime.cs
Mengonversi representasi rentang tanggal dan waktu yang ditentukan 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 tepat atau pengecualian dilemparkan.
public static DateTime ParseExact(ReadOnlySpan<char> s, string[] formats, IFormatProvider? provider, System.Globalization.DateTimeStyles style = System.Globalization.DateTimeStyles.None);
public static DateTime ParseExact(ReadOnlySpan<char> s, string[] formats, IFormatProvider provider, System.Globalization.DateTimeStyles style = System.Globalization.DateTimeStyles.None);
static member ParseExact : ReadOnlySpan<char> * string[] * IFormatProvider * System.Globalization.DateTimeStyles -> DateTime
Public Shared Function ParseExact (s As ReadOnlySpan(Of Char), formats As String(), provider As IFormatProvider, Optional style As DateTimeStyles = System.Globalization.DateTimeStyles.None) As DateTime
Parameter
- s
- ReadOnlySpan<Char>
Rentang yang berisi karakter yang mewakili tanggal dan waktu untuk dikonversi.
- formats
- String[]
Array format yang diizinkan dari s.
- provider
- IFormatProvider
Objek yang memasok informasi format khusus budaya tentang s.
- style
- DateTimeStyles
Kombinasi bitwise dari nilai enumerasi yang menunjukkan format yang diizinkan dari s. Nilai umum yang akan ditentukan adalah None.
Mengembalikan
Objek yang setara dengan tanggal dan waktu yang terkandung dalam s, seperti yang ditentukan oleh formats, , providerdan style.
Berlaku untuk
ParseExact(String, String, IFormatProvider, DateTimeStyles)
- 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 format yang ditentukan, informasi format khusus budaya, dan gaya. Format representasi string harus cocok dengan format yang ditentukan tepat atau pengecualian dilemparkan.
public:
static DateTime ParseExact(System::String ^ s, System::String ^ format, IFormatProvider ^ provider, System::Globalization::DateTimeStyles style);
public static DateTime ParseExact(string s, string format, IFormatProvider provider, System.Globalization.DateTimeStyles style);
public static DateTime ParseExact(string s, string format, IFormatProvider? provider, System.Globalization.DateTimeStyles style);
static member ParseExact : string * string * IFormatProvider * System.Globalization.DateTimeStyles -> DateTime
Public Shared Function ParseExact (s As String, format As String, provider As IFormatProvider, style As DateTimeStyles) As DateTime
Parameter
- s
- String
String yang berisi tanggal dan waktu untuk dikonversi.
- format
- String
Penentu format yang menentukan format yang diperlukan dari s. Untuk informasi selengkapnya, lihat bagian Keterangan.
- provider
- IFormatProvider
Objek yang memasok informasi pemformatan khusus budaya tentang s.
- style
- DateTimeStyles
Kombinasi bitwise dari nilai enumerasi yang menyediakan informasi tambahan tentang s, tentang elemen gaya yang mungkin ada di s, atau tentang konversi dari s ke DateTime nilai. Nilai umum yang akan ditentukan adalah None.
Mengembalikan
Objek yang setara dengan tanggal dan waktu yang terkandung dalam s, seperti yang ditentukan oleh format, , providerdan style.
Pengecualian
s atau format adalah null.
s atau format adalah string kosong.
-atau-
s tidak berisi tanggal dan waktu yang sesuai dengan pola yang ditentukan dalam format.
-atau-
Komponen jam dan penunjuk AM/PM di s tidak setuju.
style berisi kombinasi DateTimeStyles nilai yang tidak valid. Misalnya, dan AssumeLocalAssumeUniversal.
Contoh
Contoh berikut menunjukkan ParseExact(String, String, IFormatProvider) metode . Perhatikan bahwa string " 5/01/2009 8:30 AM" tidak dapat diurai dengan sukses ketika styles parameter sama DateTimeStyles.None karena spasi di depan tidak diizinkan oleh format. Selain itu, string "5/01/2009 09:00" tidak dapat berhasil diurai dengan format "MM/dd/yyyyhh:mm" karena string tanggal tidak mendahului nomor bulan dengan nol di depannya, seperti format yang diperlukan.
using System;
using System.Globalization;
public class Example
{
public static void Main()
{
CultureInfo enUS = new CultureInfo("en-US");
string dateString;
DateTime dateValue;
// Parse date with no style flags.
dateString = " 5/01/2009 8:30 AM";
try {
dateValue = DateTime.ParseExact(dateString, "g", enUS, DateTimeStyles.None);
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
dateValue.Kind);
}
catch (FormatException) {
Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
}
// Allow a leading space in the date string.
try {
dateValue = DateTime.ParseExact(dateString, "g", enUS, DateTimeStyles.AllowLeadingWhite);
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
dateValue.Kind);
}
catch (FormatException) {
Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
}
// Use custom formats with M and MM.
dateString = "5/01/2009 09:00";
try {
dateValue = DateTime.ParseExact(dateString, "M/dd/yyyy hh:mm", enUS, DateTimeStyles.None);
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
dateValue.Kind);
}
catch (FormatException) {
Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
}
// Allow a leading space in the date string.
try {
dateValue = DateTime.ParseExact(dateString, "MM/dd/yyyy hh:mm", enUS, DateTimeStyles.None);
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
dateValue.Kind);
}
catch (FormatException) {
Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
}
// Parse a string with time zone information.
dateString = "05/01/2009 01:30:42 PM -05:00";
try {
dateValue = DateTime.ParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS, DateTimeStyles.None);
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
dateValue.Kind);
}
catch (FormatException) {
Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
}
// Allow a leading space in the date string.
try {
dateValue = DateTime.ParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS,
DateTimeStyles.AdjustToUniversal);
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
dateValue.Kind);
}
catch (FormatException) {
Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
}
// Parse a string representing UTC.
dateString = "2008-06-11T16:11:20.0904778Z";
try {
dateValue = DateTime.ParseExact(dateString, "o", CultureInfo.InvariantCulture,
DateTimeStyles.None);
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
dateValue.Kind);
}
catch (FormatException) {
Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
}
try {
dateValue = DateTime.ParseExact(dateString, "o", CultureInfo.InvariantCulture,
DateTimeStyles.RoundtripKind);
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue,
dateValue.Kind);
}
catch (FormatException) {
Console.WriteLine("'{0}' is not in an acceptable format.", dateString);
}
}
}
// The example displays the following output:
// ' 5/01/2009 8:30 AM' is not in an acceptable format.
// Converted ' 5/01/2009 8:30 AM' to 5/1/2009 8:30:00 AM (Unspecified).
// Converted '5/01/2009 09:00' to 5/1/2009 9:00:00 AM (Unspecified).
// '5/01/2009 09:00' is not in an acceptable format.
// Converted '05/01/2009 01:30:42 PM -05:00' to 5/1/2009 11:30:42 AM (Local).
// Converted '05/01/2009 01:30:42 PM -05:00' to 5/1/2009 6:30:42 PM (Utc).
// Converted '2008-06-11T16:11:20.0904778Z' to 6/11/2008 9:11:20 AM (Local).
// Converted '2008-06-11T16:11:20.0904778Z' to 6/11/2008 4:11:20 PM (Utc).
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"
try
let dateValue = DateTime.ParseExact(dateString, "g", enUS, DateTimeStyles.None)
printfn $"Converted '{dateString}' to {dateValue} ({dateValue.Kind})."
with :? FormatException ->
printfn $"'{dateString}' is not in an acceptable format."
// Allow a leading space in the date string.
try
let dateValue = DateTime.ParseExact(dateString, "g", enUS, DateTimeStyles.AllowLeadingWhite)
printfn $"Converted '{dateString}' to {dateValue} ({dateValue.Kind})."
with :? FormatException ->
printfn $"'{dateString}' is not in an acceptable format."
// Use custom formats with M and MM.
let dateString = "5/01/2009 09:00"
try
let dateValue = DateTime.ParseExact(dateString, "M/dd/yyyy hh:mm", enUS, DateTimeStyles.None)
printfn $"Converted '{dateString}' to {dateValue} ({dateValue.Kind})."
with :? FormatException ->
printfn $"'{dateString}' is not in an acceptable format."
// Allow a leading space in the date string.
try
let dateValue = DateTime.ParseExact(dateString, "MM/dd/yyyy hh:mm", enUS, DateTimeStyles.None)
printfn $"Converted '{dateString}' to {dateValue} ({dateValue.Kind})."
with :? FormatException ->
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"
try
let dateValue = DateTime.ParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS, DateTimeStyles.None)
printfn $"Converted '{dateString}' to {dateValue} ({dateValue.Kind})."
with :? FormatException ->
printfn $"'{dateString}' is not in an acceptable format."
// Allow a leading space in the date string.
try
let dateValue = DateTime.ParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS, DateTimeStyles.AdjustToUniversal)
printfn $"Converted '{dateString}' to {dateValue} ({dateValue.Kind})."
with :? FormatException ->
printfn $"'{dateString}' is not in an acceptable format."
// Parse a string representing UTC.
let dateString = "2008-06-11T16:11:20.0904778Z"
try
let dateValue = DateTime.ParseExact(dateString, "o", CultureInfo.InvariantCulture, DateTimeStyles.None)
printfn $"Converted '{dateString}' to {dateValue} ({dateValue.Kind})."
with :? FormatException ->
printfn $"'{dateString}' is not in an acceptable format."
try
let dateValue = DateTime.ParseExact(dateString, "o", CultureInfo.InvariantCulture, DateTimeStyles.RoundtripKind)
printfn $"Converted '{dateString}' to {dateValue} ({dateValue.Kind})."
with :? FormatException ->
printfn $"'{dateString}' is not in an acceptable format."
// The example displays the following output:
// ' 5/01/2009 8:30 AM' is not in an acceptable format.
// Converted ' 5/01/2009 8:30 AM' to 5/1/2009 8:30:00 AM (Unspecified).
// Converted '5/01/2009 09:00' to 5/1/2009 9:00:00 AM (Unspecified).
// '5/01/2009 09:00' is not in an acceptable format.
// Converted '05/01/2009 01:30:42 PM -05:00' to 5/1/2009 11:30:42 AM (Local).
// Converted '05/01/2009 01:30:42 PM -05:00' to 5/1/2009 6:30:42 PM (Utc).
// Converted '2008-06-11T16:11:20.0904778Z' to 6/11/2008 9:11:20 AM (Local).
// Converted '2008-06-11T16:11:20.0904778Z' to 6/11/2008 4:11:20 PM (Utc).
Imports System.Globalization
Module Example
Public Sub Main()
Dim enUS As New CultureInfo("en-US")
Dim dateString As String
Dim dateValue As Date
' Parse date with no style flags.
dateString = " 5/01/2009 8:30 AM"
Try
dateValue = Date.ParseExact(dateString, "g", enUS, DateTimeStyles.None)
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
dateValue.Kind)
Catch e As FormatException
Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
End Try
' Allow a leading space in the date string.
Try
dateValue = Date.ParseExact(dateString, "g", enUS, DateTimeStyles.AllowLeadingWhite)
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
dateValue.Kind)
Catch e As FormatException
Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
End Try
' Use custom formats with M and MM.
dateString = "5/01/2009 09:00"
Try
dateValue = Date.ParseExact(dateString, "M/dd/yyyy hh:mm", enUS, DateTimeStyles.None)
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
dateValue.Kind)
Catch e As FormatException
Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
End Try
' Allow a leading space in the date string.
Try
dateValue = Date.ParseExact(dateString, "MM/dd/yyyy hh:mm", enUS, DateTimeStyles.None)
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
dateValue.Kind)
Catch e As FormatException
Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
End Try
' Parse a string with time zone information.
dateString = "05/01/2009 01:30:42 PM -05:00"
Try
dateValue = Date.ParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS, DateTimeStyles.None)
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
dateValue.Kind)
Catch e As FormatException
Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
End Try
' Allow a leading space in the date string.
Try
dateValue = Date.ParseExact(dateString, "MM/dd/yyyy hh:mm:ss tt zzz", enUS, _
DateTimeStyles.AdjustToUniversal)
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
dateValue.Kind)
Catch e As FormatException
Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
End Try
' Parse a string representing UTC.
dateString = "2008-06-11T16:11:20.0904778Z"
Try
dateValue = Date.ParseExact(dateString, "o", CultureInfo.InvariantCulture, _
DateTimeStyles.None)
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
dateValue.Kind)
Catch e As FormatException
Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
End Try
Try
dateValue = Date.ParseExact(dateString, "o", CultureInfo.InvariantCulture, _
DateTimeStyles.RoundtripKind)
Console.WriteLine("Converted '{0}' to {1} ({2}).", dateString, dateValue, _
dateValue.Kind)
Catch e As FormatException
Console.WriteLine("'{0}' is not in an acceptable format.", dateString)
End Try
End Sub
End Module
' The example displays the following output:
' ' 5/01/2009 8:30 AM' is not in an acceptable format.
' Converted ' 5/01/2009 8:30 AM' to 5/1/2009 8:30:00 AM (Unspecified).
' Converted '5/01/2009 09:00' to 5/1/2009 9:00:00 AM (Unspecified).
' '5/01/2009 09:00' is not in an acceptable format.
' Converted '05/01/2009 01:30:42 PM -05:00' to 5/1/2009 11:30:42 AM (Local).
' Converted '05/01/2009 01:30:42 PM -05:00' to 5/1/2009 6:30:42 PM (Utc).
' Converted '2008-06-11T16:11:20.0904778Z' to 6/11/2008 9:11:20 AM (Local).
' Converted '2008-06-11T16:11:20.0904778Z' to 6/11/2008 4:11:20 PM (Utc).
Keterangan
Metode ini DateTime.ParseExact(String, String, IFormatProvider, DateTimeStyles) menguraikan representasi string tanggal, yang harus dalam format yang ditentukan oleh format parameter . Ini juga mengharuskan elemen tanggal dan waktu muncul dalam s urutan yang ditentukan oleh format. Jika s tidak cocok dengan pola format parameter, dengan variasi apa pun yang ditentukan oleh style parameter , metode akan melempar FormatException. Sebaliknya, metode mengurai DateTime.Parse(String, IFormatProvider, DateTimeStyles) representasi string tanggal dalam salah satu format yang dikenali oleh objek penyedia DateTimeFormatInfo format. Metode ini DateTime.Parse(String, IFormatProvider, DateTimeStyles) juga memungkinkan elemen tanggal dan waktu muncul dalam s urutan apa pun.
s Jika parameter hanya berisi waktu dan tidak ada tanggal, tanggal saat ini digunakan kecuali style parameter menyertakan DateTimeStyles.NoCurrentDateDefault bendera, dalam hal ini tanggal default (DateTime.Date.MinValue) digunakan.
s Jika parameter hanya berisi tanggal dan tanpa waktu, tengah malam (00:00:00) digunakan. Parameter style juga menentukan apakah s parameter dapat berisi karakter spasi putih di depan, dalam, atau di belakang.
Jika s tidak berisi informasi zona waktu, Kind properti objek yang dikembalikan DateTime adalah DateTimeKind.Unspecified. Perilaku ini dapat diubah dengan menggunakan DateTimeStyles.AssumeLocal bendera, yang mengembalikan DateTime nilai yang propertinya Kind adalah DateTimeKind.Local, atau dengan menggunakan DateTimeStyles.AssumeUniversal bendera dan DateTimeStyles.AdjustToUniversal , yang mengembalikan DateTime nilai yang propertinya Kind adalah DateTimeKind.Utc. Jika s berisi informasi zona waktu, waktu dikonversi ke waktu lokal, jika perlu, dan Kind properti objek yang dikembalikan DateTime diatur ke DateTimeKind.Local. Perilaku ini dapat diubah dengan menggunakan DateTimeStyles.RoundtripKind bendera untuk tidak mengonversi Waktu Universal Terkoordinasi (UTC) ke waktu lokal dan untuk mengatur Kind properti ke DateTimeKind.Utc.
Parameter format menentukan pola parameter yang s diperlukan. Ini dapat 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 provider parameter 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 agar sesuai dengan satu format agar operasi penguraian berhasil, Anda dapat memanggil DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles) metode dan menentukan beberapa format yang s diizinkan. Hal ini membuat operasi penguraian lebih mungkin berhasil.
Parameter styles mencakup satu atau beberapa DateTimeStyles anggota enumerasi yang menentukan apakah dan di mana ruang kosong yang tidak ditentukan oleh format dapat muncul di s dan yang mengontrol perilaku yang tepat dari operasi penguraian. Tabel berikut menjelaskan bagaimana setiap anggota DateTimeStyles enumerasi memengaruhi pengoperasian ParseExact(String, String, IFormatProvider, DateTimeStyles) metode.
| 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 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 | 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 yang 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 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. |
| 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 diperbolehkan format . Jika s tidak memiliki komponen tanggal, tanggal nilai yang dikembalikan DateTime diatur ke 1/1/0001. Jika s tidak berisi informasi zona waktu, Kind properti objek yang dikembalikan DateTime diatur ke DateTimeKind.Unspecified. Jika informasi zona waktu ada di , waktu dikonversi ske waktu lokal dan Kind properti objek yang dikembalikan DateTime diatur ke DateTimeKind.Local. |
| RoundtripKind | Untuk string yang berisi informasi zona waktu, mencoba mencegah konversi ke DateTime tanggal dan waktu nilai dengan propertinya Kind diatur ke DateTimeKind.Local. Bendera ini terutama mencegah konversi waktu UTC ke waktu lokal. |
Simbol dan string tanggal dan waktu tertentu (seperti nama hari dalam seminggu dalam bahasa tertentu) yang digunakan didefinisikan s oleh provider parameter, seperti format yang tepat jika sformat adalah string penentu format standar. Parameter provider dapat berupa salah satu hal berikut:
Objek CultureInfo yang mewakili budaya yang digunakan untuk menafsirkan
s. Objek DateTimeFormatInfo yang dikembalikan oleh propertinya DateTimeFormat menentukan simbol dan pemformatan dis.Objek DateTimeFormatInfo yang menentukan format data tanggal dan waktu.
Implementasi kustom IFormatProvider yang metodenya GetFormat mengembalikan CultureInfo objek atau DateTimeFormatInfo objek yang menyediakan informasi pemformatan.
Jika provider adalah null, CultureInfo objek yang sesuai dengan budaya saat ini digunakan.
Catatan Bagi Pemanggil
Dalam .NET Framework 4, ParseExact metode melempar jika string yang FormatException 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
- TryParseExact
- CultureInfo
- DateTimeFormatInfo
- Mengurai String Tanggal dan Waktu di .NET Framework
- String Format Tanggal dan Waktu Standar
- String Format Tanggal dan Waktu Kustom
Berlaku untuk
ParseExact(String, String[], IFormatProvider, DateTimeStyles)
- 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 array format yang ditentukan, informasi format khusus budaya, dan gaya. Format representasi string harus cocok dengan setidaknya salah satu format yang ditentukan tepat atau pengecualian dilemparkan.
public:
static DateTime ParseExact(System::String ^ s, cli::array <System::String ^> ^ formats, IFormatProvider ^ provider, System::Globalization::DateTimeStyles style);
public static DateTime ParseExact(string s, string[] formats, IFormatProvider provider, System.Globalization.DateTimeStyles style);
public static DateTime ParseExact(string s, string[] formats, IFormatProvider? provider, System.Globalization.DateTimeStyles style);
static member ParseExact : string * string[] * IFormatProvider * System.Globalization.DateTimeStyles -> DateTime
Public Shared Function ParseExact (s As String, formats As String(), provider As IFormatProvider, style As DateTimeStyles) As DateTime
Parameter
- s
- String
String yang berisi tanggal dan waktu untuk dikonversi.
- formats
- String[]
Array format yang diizinkan dari s. Untuk informasi selengkapnya, lihat bagian Keterangan.
- provider
- IFormatProvider
Objek yang memasok informasi format khusus budaya tentang s.
- style
- DateTimeStyles
Kombinasi bitwise dari nilai enumerasi yang menunjukkan format yang diizinkan dari s. Nilai umum yang akan ditentukan adalah None.
Mengembalikan
Objek yang setara dengan tanggal dan waktu yang terkandung dalam s, seperti yang ditentukan oleh formats, , providerdan style.
Pengecualian
s atau formats adalah null.
s adalah string kosong.
-atau-
elemen dari formats adalah string kosong.
-atau-
s tidak berisi tanggal dan waktu yang sesuai dengan elemen apa pun dari formats.
-atau-
Komponen jam dan penunjuk AM/PM di s tidak setuju.
style berisi kombinasi DateTimeStyles nilai yang tidak valid. Misalnya, dan AssumeLocalAssumeUniversal.
Contoh
Contoh berikut menggunakan DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles) metode 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",
"MM/d/yyyy HH:mm:ss.ffffff" };
string[] dateStrings = {"5/1/2009 6:32 PM", "05/01/2009 6:32:05 PM",
"5/1/2009 6:32:00", "05/01/2009 06:32",
"05/01/2009 06:32:00 PM", "05/01/2009 06:32:00",
"08/28/2015 16:17:39.125", "08/28/2015 16:17:39.125000" };
DateTime dateValue;
foreach (string dateString in dateStrings)
{
try {
dateValue = DateTime.ParseExact(dateString, formats,
new CultureInfo("en-US"),
DateTimeStyles.None);
Console.WriteLine("Converted '{0}' to {1}.", dateString, dateValue);
}
catch (FormatException) {
Console.WriteLine("Unable to convert '{0}' to a date.", dateString);
}
}
}
}
// The example displays the following output:
// Converted '5/1/2009 6:32 PM' to 5/1/2009 6:32:00 PM.
// Converted '05/01/2009 6:32:05 PM' to 5/1/2009 6:32:05 PM.
// Converted '5/1/2009 6:32:00' to 5/1/2009 6:32:00 AM.
// Converted '05/01/2009 06:32' to 5/1/2009 6:32:00 AM.
// Converted '05/01/2009 06:32:00 PM' to 5/1/2009 6:32:00 PM.
// Converted '05/01/2009 06:32:00' to 5/1/2009 6:32:00 AM.
// Unable to convert '08/28/2015 16:17:39.125' to a date.
// Converted '08/28/2015 16:17:39.125000' to 8/28/2015 4:17:39 PM.
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"
"MM/d/yyyy HH:mm:ss.ffffff" |]
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"
"08/28/2015 16:17:39.125"; "08/28/2015 16:17:39.125000" ]
for dateString in dateStrings do
try
let dateValue = DateTime.ParseExact(dateString, formats, CultureInfo "en-US", DateTimeStyles.None)
printfn $"Converted '{dateString}' to {dateValue}."
with :? FormatException ->
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.
// Unable to convert '08/28/2015 16:17:39.125' to a date.
// Converted '08/28/2015 16:17:39.125000' to 8/28/2015 4:17:39 PM.
Imports System.Globalization
Module Example
Public Sub Main()
Dim formats() As String = {"M/d/yyyy h:mm:ss tt", "M/d/yyyy h:mm tt", _
"MM/dd/yyyy hh:mm:ss", "M/d/yyyy h:mm:ss", _
"M/d/yyyy hh:mm tt", "M/d/yyyy hh tt", _
"M/d/yyyy h:mm", "M/d/yyyy h:mm", _
"MM/dd/yyyy hh:mm", "M/dd/yyyy hh:mm",
"MM/d/yyyy HH:mm:ss.ffffff" }
Dim dateStrings() As String = {"5/1/2009 6:32 PM", "05/01/2009 6:32:05 PM", _
"5/1/2009 6:32:00", "05/01/2009 06:32", _
"05/01/2009 06:32:00 PM", "05/01/2009 06:32:00",
"08/28/2015 16:17:39.125", "08/28/2015 16:17:39.125000" }
Dim dateValue As DateTime
For Each dateString As String In dateStrings
Try
dateValue = DateTime.ParseExact(dateString, formats, _
New CultureInfo("en-US"), _
DateTimeStyles.None)
Console.WriteLine("Converted '{0}' to {1}.", dateString, dateValue)
Catch e As FormatException
Console.WriteLine("Unable to convert '{0}' to a date.", dateString)
End Try
Next
End Sub
End Module
' The example displays the following output:
' Converted '5/1/2009 6:32 PM' to 5/1/2009 6:32:00 PM.
' Converted '05/01/2009 6:32:05 PM' to 5/1/2009 6:32:05 PM.
' Converted '5/1/2009 6:32:00' to 5/1/2009 6:32:00 AM.
' Converted '05/01/2009 06:32' to 5/1/2009 6:32:00 AM.
' Converted '05/01/2009 06:32:00 PM' to 5/1/2009 6:32:00 PM.
' Converted '05/01/2009 06:32:00' to 5/1/2009 6:32:00 AM.
' Unable to convert '08/28/2015 16:17:39.125' to a date.
' Converted '08/28/2015 16:17:39.125000' to 8/28/2015 4:17:39 PM.
Keterangan
Metode ini DateTime.ParseExact(String, String[], IFormatProvider, DateTimeStyles) menguraikan representasi string dari tanggal yang cocok dengan salah satu pola yang ditetapkan ke formats parameter . Jika string s tidak cocok dengan salah satu pola ini dengan salah satu variasi yang ditentukan oleh styles parameter, metode akan melemparkan FormatException. Selain membandingkan s dengan beberapa pola pemformatan, bukan dengan pola pemformatan tunggal, kelebihan beban ini berperilaku identik dengan DateTime.ParseExact(String, String, IFormatProvider, DateTimeStyles) metode .
Parameter s berisi tanggal dan waktu untuk mengurai.
s Jika parameter hanya berisi waktu dan tidak ada tanggal, tanggal saat ini digunakan kecuali style parameter menyertakan DateTimeStyles.NoCurrentDateDefault bendera, dalam hal ini tanggal default (DateTime.Date.MinValue) digunakan.
s Jika parameter hanya berisi tanggal dan tanpa waktu, tengah malam (00:00:00) digunakan. Parameter style juga menentukan apakah s parameter dapat berisi karakter spasi putih terkemuka, dalam, atau akhir selain yang diizinkan oleh salah satu string format di formats.
Jika s tidak berisi informasi zona waktu, Kind properti objek yang dikembalikan DateTime adalah DateTimeKind.Unspecified. Perilaku ini dapat diubah dengan menggunakan DateTimeStyles.AssumeLocal bendera, yang mengembalikan DateTime nilai yang propertinya Kind adalah DateTimeKind.Local, atau dengan menggunakan DateTimeStyles.AssumeUniversal bendera dan DateTimeStyles.AdjustToUniversal , yang mengembalikan DateTime nilai yang propertinya Kind adalah DateTimeKind.Utc. Jika s berisi informasi zona waktu, waktu dikonversi ke waktu lokal, jika perlu, dan Kind properti objek yang dikembalikan DateTime diatur ke DateTimeKind.Local. Perilaku ini dapat diubah dengan menggunakan DateTimeStyles.RoundtripKind bendera untuk tidak mengonversi Waktu Universal Terkoordinasi (UTC) ke waktu lokal dan mengatur Kind properti ke DateTimeKind.Utc.
Parameter formats berisi array pola, salah satunya s harus cocok persis jika operasi penguraian berhasil. Pola dalam formats 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 provider parameter 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".
Parameter styles mencakup satu atau beberapa DateTimeStyles anggota enumerasi yang menentukan apakah dan di mana ruang kosong yang tidak ditentukan oleh format dapat muncul di s dan yang mengontrol perilaku yang tepat dari operasi penguraian. Tabel berikut menjelaskan bagaimana setiap anggota DateTimeStyles enumerasi memengaruhi pengoperasian ParseExact(String, String, IFormatProvider, DateTimeStyles) metode.
| 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 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 | 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 yang 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 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. |
| 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 diperbolehkan format . Jika s tidak memiliki komponen tanggal, tanggal nilai yang dikembalikan DateTime diatur ke 1/1/0001. Jika s tidak berisi informasi zona waktu, Kind properti objek yang dikembalikan DateTime diatur ke DateTimeKind.Unspecified. Jika informasi zona waktu ada di , waktu dikonversi ske waktu lokal dan Kind properti objek yang dikembalikan DateTime diatur ke DateTimeKind.Local. |
| RoundtripKind | Untuk string yang berisi informasi zona waktu, mencoba mencegah konversi ke tanggal dan waktu dengan propertinya Kind diatur ke DateTimeKind.Local. Bendera ini terutama mencegah konversi waktu UTC ke waktu lokal. |
Simbol dan string tanggal dan waktu tertentu (seperti nama hari dalam seminggu dalam bahasa tertentu) yang digunakan didefinisikan s oleh provider parameter, seperti format yang tepat jika sformat adalah string penentu format standar. Parameter provider dapat berupa salah satu hal berikut:
Objek CultureInfo yang mewakili budaya yang digunakan untuk menafsirkan
s. Objek DateTimeFormatInfo yang dikembalikan oleh propertinya DateTimeFormat menentukan simbol dan pemformatan dis.Objek DateTimeFormatInfo yang menentukan format data tanggal dan waktu.
Implementasi kustom IFormatProvider yang metodenya GetFormat mengembalikan CultureInfo objek atau DateTimeFormatInfo objek yang menyediakan informasi pemformatan.
Jika provider adalah null, CultureInfo objek yang sesuai dengan budaya saat ini digunakan.
Catatan Bagi Pemanggil
Dalam .NET Framework 4, ParseExact metode melempar jika string yang FormatException 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
- TryParseExact
- CultureInfo
- DateTimeFormatInfo
- Mengurai String Tanggal dan Waktu di .NET Framework
- String Format Tanggal dan Waktu Standar
- String Format Tanggal dan Waktu Kustom