DateTimeOffset.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 DateTimeOffset yang setara. Format representasi string harus sama persis dengan format yang ditentukan.
Overload
| Nama | Deskripsi |
|---|---|
| ParseExact(String, String[], IFormatProvider, DateTimeStyles) |
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 salah satu format yang ditentukan. |
| ParseExact(String, String, IFormatProvider, DateTimeStyles) |
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. |
| ParseExact(String, String, IFormatProvider) |
Mengonversi representasi string yang ditentukan dari tanggal dan waktu ke DateTimeOffset 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 rentang karakter yang mewakili tanggal dan waktu yang DateTimeOffset setara menggunakan format yang ditentukan, informasi format khusus budaya, dan gaya. Format representasi tanggal dan waktu harus sama persis dengan format yang ditentukan. |
| ParseExact(ReadOnlySpan<Char>, String[], IFormatProvider, DateTimeStyles) |
Mengonversi rentang karakter yang berisi representasi string tanggal dan waktu yang 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. |
ParseExact(String, String[], IFormatProvider, DateTimeStyles)
- Sumber:
- DateTimeOffset.cs
- Sumber:
- DateTimeOffset.cs
- 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 salah satu format yang ditentukan.
public:
static DateTimeOffset ParseExact(System::String ^ input, cli::array <System::String ^> ^ formats, IFormatProvider ^ formatProvider, System::Globalization::DateTimeStyles styles);
public static DateTimeOffset ParseExact(string input, string[] formats, IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles);
public static DateTimeOffset ParseExact(string input, string[] formats, IFormatProvider? formatProvider, System.Globalization.DateTimeStyles styles);
static member ParseExact : string * string[] * IFormatProvider * System.Globalization.DateTimeStyles -> DateTimeOffset
Public Shared Function ParseExact (input As String, formats As String(), formatProvider As IFormatProvider, styles As DateTimeStyles) As DateTimeOffset
Parameter
- input
- String
String yang berisi tanggal dan waktu untuk dikonversi.
- formats
- String[]
Array penentu format 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 yang diizinkan dari input.
Mengembalikan
Objek yang setara dengan tanggal dan waktu yang terkandung dalam input parameter, seperti yang ditentukan oleh formatsparameter , , formatProviderdan styles .
Pengecualian
Offset lebih besar dari 14 jam atau kurang dari -14 jam.
-atau-
styles menyertakan nilai yang tidak didukung.
-atau-
Parameter styles berisi DateTimeStyles nilai yang tidak dapat digunakan bersama-sama.
input adalah null.
input adalah string kosong ("").
-atau-
input tidak berisi representasi string yang valid dari tanggal dan waktu.
-atau-
Tidak ada elemen berisi formats penentu format yang valid.
-atau-
Komponen jam dan penunjuk AM/PM di input tidak setuju.
Contoh
Contoh berikut mendefinisikan beberapa format input untuk representasi string dari nilai tanggal dan waktu dan offset, lalu meneruskan string yang dimasukkan oleh pengguna ke DateTimeOffset.ParseExact(String, String[], IFormatProvider, DateTimeStyles) 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 = new 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();
try
{
result = DateTimeOffset.ParseExact(input, formats, provider,
DateTimeStyles.AllowWhiteSpaces);
break;
}
catch (FormatException)
{
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 input = String.Empty
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
let mutable result = None
let mutable tries = 0
while tries < 3 && result.IsNone do
printfn "Enter a date, time, and offset (MM/DD/YYYY HH:MM +/-HH:MM),"
printf "Then press Enter: "
let input = stdin.ReadLine()
printfn ""
try
result <-
DateTimeOffset.ParseExact(input, formats, provider, DateTimeStyles.AllowWhiteSpaces)
|> Some
with :? FormatException ->
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()
Try
result = DateTimeOffset.ParseExact(input, formats, provider, _
DateTimeStyles.AllowWhiteSpaces)
Exit Do
Catch e As FormatException
Console.WriteLine("Unable to parse {0}.", input)
tries += 1
End Try
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 DateTimeOffset.ParseExact(String, String[], IFormatProvider, DateTimeStyles) menguraikan representasi string dari tanggal yang cocok dengan salah satu pola yang ditetapkan ke formats parameter .
input Jika string tidak cocok dengan salah satu pola ini dengan salah satu variasi yang ditentukan oleh styles parameter, metode akan melemparkan FormatException. Selain membandingkan input dengan beberapa pola pemformatan, 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 parameter yang input mungkin. Ketika metode dipanggil, input harus cocok dengan salah satu pola ini. 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, , zzatau zzz penentu format kustom untuk menunjukkan bahwa offset harus ada di input, offset tersebut harus menyertakan tanda negatif atau tanda positif. Jika tanda hilang, metode akan melempar FormatException.
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 kurang nol di depan dalam bulan, hari, jam, menit, dan detik. Contoh 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 yang input berisi waktu tetapi bukan tanggal, objek yang DateTimeOffset dihasilkan diberi tanggal saat ini pada sistem lokal. Jika elemen yang cocok di formats tidak memerlukan yang input berisi offset, offset objek yang DateTimeOffset dihasilkan tergantung pada nilai styles parameter. Jika styles termasuk AssumeLocal, offset zona waktu lokal ditetapkan ke DateTimeOffset objek. Jika styles termasuk AssumeUniversal, offset Waktu Universal Terkoordinasi (UTC), atau +00:00, ditetapkan ke DateTimeOffset objek. Jika tidak ada nilai yang ditentukan, offset zona waktu lokal digunakan.
Simbol dan string tanggal dan waktu tertentu yang digunakan ditentukan input oleh formatProvider parameter . Hal yang sama berlaku untuk format yang tepat dari input, jika elemen yang cocok adalah formats string penentu format standar. Parameter formatProvider dapat berupa salah satu dari yang berikut:
Objek CultureInfo yang mewakili budaya berdasarkan yang
inputditafsirkan. 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 |
Perilaku |
|---|---|
| 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 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 format. Ruang kosong ekstra dapat muncul antara komponen tanggal dan waktu dan dalam komponen individual (kecuali offset), dan diabaikan saat mengurai string. |
| AllowLeadingWhite | Memungkinkan input untuk menyertakan spasi di depan yang tidak ditentukan oleh formats. Ini diabaikan saat mengurai string. |
| AllowTrailingWhite | Memungkinkan input untuk menyertakan spasi berikutnya yang tidak ditentukan oleh formats. Ini diabaikan saat mengurai string. |
| AllowWhiteSpaces | Memungkinkan input untuk menyertakan spasi di depan, di belakang, dan dalam yang tidak ditentukan oleh formats. Semua karakter spasi putih tambahan 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 formats tertentu untuk terjadinya kecocokan. Ini adalah perilaku default. |
| RoundtripKind | Tidak berpengaruh karena DateTimeOffset struktur tidak menyertakan Kind properti. |
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
Berlaku untuk
ParseExact(String, String, IFormatProvider, DateTimeStyles)
- Sumber:
- DateTimeOffset.cs
- Sumber:
- DateTimeOffset.cs
- 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 DateTimeOffset ParseExact(System::String ^ input, System::String ^ format, IFormatProvider ^ formatProvider, System::Globalization::DateTimeStyles styles);
public static DateTimeOffset ParseExact(string input, string format, IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles);
public static DateTimeOffset ParseExact(string input, string format, IFormatProvider? formatProvider, System.Globalization.DateTimeStyles styles);
static member ParseExact : string * string * IFormatProvider * System.Globalization.DateTimeStyles -> DateTimeOffset
Public Shared Function ParseExact (input As String, format As String, formatProvider As IFormatProvider, styles As DateTimeStyles) As DateTimeOffset
Parameter
- input
- String
String yang berisi tanggal dan waktu untuk dikonversi.
- format
- String
Penentu format 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 yang diizinkan dari input.
Mengembalikan
Objek yang setara dengan tanggal dan waktu yang terkandung dalam input parameter, seperti yang ditentukan oleh formatparameter , , formatProviderdan styles .
Pengecualian
Offset lebih besar dari 14 jam atau kurang dari -14 jam.
-atau-
Parameter styles menyertakan nilai yang tidak didukung.
-atau-
Parameter styles berisi DateTimeStyles nilai yang tidak dapat digunakan bersama-sama.
input adalah string kosong ("").
-atau-
input tidak berisi representasi string yang valid dari tanggal dan waktu.
-atau-
format adalah string kosong.
-atau-
Komponen jam dan penunjuk AM/PM di input tidak setuju.
Contoh
Contoh berikut menggunakan DateTimeOffset.ParseExact(String, String, IFormatProvider, DateTimeStyles) 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;
CultureInfo provider = CultureInfo.InvariantCulture;
// Parse date-only value with invariant culture and assume time is UTC.
dateString = "06/15/2008";
format = "d";
try
{
result = DateTimeOffset.ParseExact(dateString, format, provider,
DateTimeStyles.AssumeUniversal);
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 with leading white space.
// Should throw a FormatException because only trailing white space is
// specified in method call.
dateString = " 06/15/2008";
try
{
result = DateTimeOffset.ParseExact(dateString, format, provider,
DateTimeStyles.AllowTrailingWhite);
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 value, and allow all white space.
dateString = " 06/15/ 2008 15:15 -05:00";
format = "MM/dd/yyyy H:mm zzz";
try
{
result = DateTimeOffset.ParseExact(dateString, format, provider,
DateTimeStyles.AllowWhiteSpaces);
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 and convert to UTC.
dateString = " 06/15/2008 15:15:30 -05:00";
format = "MM/dd/yyyy H:mm:ss zzz";
try
{
result = DateTimeOffset.ParseExact(dateString, format, provider,
DateTimeStyles.AllowWhiteSpaces |
DateTimeStyles.AdjustToUniversal);
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 +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"
try
let result = DateTimeOffset.ParseExact(dateString, format, provider, DateTimeStyles.AssumeUniversal)
printfn $"'{dateString}' converts to {result}."
with :? FormatException ->
printfn $"'{dateString}' is not in the correct format."
// Parse date-only value with leading white space.
// Should throw a FormatException because only trailing white space is
// specified in method call.
let dateString = " 06/15/2008"
try
let result = DateTimeOffset.ParseExact(dateString, format, provider, DateTimeStyles.AllowTrailingWhite)
printfn $"'{dateString}' converts to {result}."
with :? FormatException ->
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"
try
let result = DateTimeOffset.ParseExact(dateString, format, provider, DateTimeStyles.AllowWhiteSpaces)
printfn $"'{dateString}' converts to {result}."
with :? FormatException ->
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"
try
let result =
DateTimeOffset.ParseExact(dateString, format, provider,
DateTimeStyles.AllowWhiteSpaces |||
DateTimeStyles.AdjustToUniversal)
printfn $"'{dateString}' converts to {result}."
with :? FormatException ->
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"
Try
result = DateTimeOffset.ParseExact(dateString, format, provider, _
DateTimeStyles.AssumeUniversal)
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 with leading white space.
' Should throw a FormatException because only trailing white space is
' specified in method call.
dateString = " 06/15/2008"
Try
result = DateTimeOffset.ParseExact(dateString, format, provider, _
DateTimeStyles.AllowTrailingWhite)
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 value, and allow all white space.
dateString = " 06/15/ 2008 15:15 -05:00"
format = "MM/dd/yyyy H:mm zzz"
Try
result = DateTimeOffset.ParseExact(dateString, format, provider, _
DateTimeStyles.AllowWhiteSpaces)
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 and convert to UTC.
dateString = " 06/15/2008 15:15:30 -05:00"
format = "MM/dd/yyyy H:mm:ss zzz"
Try
result = DateTimeOffset.ParseExact(dateString, format, provider, _
DateTimeStyles.AllowWhiteSpaces Or _
DateTimeStyles.AdjustToUniversal)
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
' 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) kecuali DateTimeStyles.AssumeUniversal bendera disediakan dalam panggilan metode. Dalam hal ini, mereka diasumsikan sebagai Universal Coordinated Time.
module parseexact_iso8601_2
open System
open System.Globalization
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" |]
let parseWithISO8601 dateStrings styles =
printfn $"Parsing with {styles}:"
for dateString in dateStrings do
try
let date = DateTimeOffset.ParseExact(dateString, "O", null, styles)
printfn $""" {dateString,-35} --> {date.ToString "yyyy-MM-dd HH:mm:ss.FF zzz"}"""
with :? FormatException ->
printfn $" FormatException: Unable to convert '{dateString}'"
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
// FormatException: Unable to convert '2018/08/18T12:45:16.0000000Z'
// FormatException: Unable to convert '2018-18-08T12:45:16.0000000Z'
// 2018-08-18T12:45:16.0000000 --> 2018-08-18 12:45:16 -07:00
// FormatException: 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
// FormatException: Unable to convert '2018/08/18T12:45:16.0000000Z'
// FormatException: 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
// FormatException: Unable to convert '2018/08/18T12:45:16.0000000Z'
// FormatException: Unable to convert '2018-18-08T12:45:16.0000000Z'
// 2018-08-18T12:45:16.0000000 --> 2018-08-18 19:45:16 +00:00
// FormatException: 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
// FormatException: Unable to convert '2018/08/18T12:45:16.0000000Z'
// FormatException: Unable to convert '2018-18-08T12:45:16.0000000Z'
// 2018-08-18T12:45:16.0000000 --> 2018-08-18 12:45:16 -07:00
// FormatException: 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
// FormatException: Unable to convert '2018/08/18T12:45:16.0000000Z'
// FormatException: Unable to convert '2018-18-08T12:45:16.0000000Z'
// 2018-08-18T12:45:16.0000000 --> 2018-08-18 12:45:16 +00:00
// FormatException: 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}:");
foreach (var dateString in dateStrings)
{
try {
var date = DateTimeOffset.ParseExact(dateString, "O", null, styles);
Console.WriteLine($" {dateString,-35} --> {date:yyyy-MM-dd HH:mm:ss.FF zzz}");
}
catch (FormatException)
{
Console.WriteLine($" FormatException: 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
// FormatException: Unable to convert '2018/08/18T12:45:16.0000000Z'
// FormatException: Unable to convert '2018-18-08T12:45:16.0000000Z'
// 2018-08-18T12:45:16.0000000 --> 2018-08-18 12:45:16 -07:00
// FormatException: 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
// FormatException: Unable to convert '2018/08/18T12:45:16.0000000Z'
// FormatException: 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
// FormatException: Unable to convert '2018/08/18T12:45:16.0000000Z'
// FormatException: Unable to convert '2018-18-08T12:45:16.0000000Z'
// 2018-08-18T12:45:16.0000000 --> 2018-08-18 19:45:16 +00:00
// FormatException: 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
// FormatException: Unable to convert '2018/08/18T12:45:16.0000000Z'
// FormatException: Unable to convert '2018-18-08T12:45:16.0000000Z'
// 2018-08-18T12:45:16.0000000 --> 2018-08-18 12:45:16 -07:00
// FormatException: 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
// FormatException: Unable to convert '2018/08/18T12:45:16.0000000Z'
// FormatException: Unable to convert '2018-18-08T12:45:16.0000000Z'
// 2018-08-18T12:45:16.0000000 --> 2018-08-18 12:45:16 +00:00
// FormatException: 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}:")
For Each dateStr In dateStrings
Try
Dim dat = DateTimeOffset.ParseExact(dateString, "O", Nothing, styles)
Console.WriteLine($" {dateString,-35} --> {dat:yyyy-MM-dd HH:mm:ss.FF zzz}")
catch e As FormatException
Console.WriteLine($" FormatException: Unable to convert '{dateString}'")
End Try
Next
End Sub
End Module
' The example displays the following output:
' Parsing with None:
' FormatException: Unable to convert '07-30-2018'
' FormatException: Unable to convert '07-30-2018'
' FormatException: Unable to convert '07-30-2018'
' FormatException: Unable to convert '07-30-2018'
' FormatException: Unable to convert '07-30-2018'
' FormatException: Unable to convert '07-30-2018'
' FormatException: Unable to convert '07-30-2018'
'
' -----
'
' Parsing with AllowWhiteSpaces:
' FormatException: Unable to convert '07-30-2018'
' FormatException: Unable to convert '07-30-2018'
' FormatException: Unable to convert '07-30-2018'
' FormatException: Unable to convert '07-30-2018'
' FormatException: Unable to convert '07-30-2018'
' FormatException: Unable to convert '07-30-2018'
' FormatException: Unable to convert '07-30-2018'
'
' -----
'
' Parsing with AdjustToUniversal:
' FormatException: Unable to convert '07-30-2018'
' FormatException: Unable to convert '07-30-2018'
' FormatException: Unable to convert '07-30-2018'
' FormatException: Unable to convert '07-30-2018'
' FormatException: Unable to convert '07-30-2018'
' FormatException: Unable to convert '07-30-2018'
' FormatException: Unable to convert '07-30-2018'
'
' -----
'
' Parsing with AssumeLocal:
' FormatException: Unable to convert '07-30-2018'
' FormatException: Unable to convert '07-30-2018'
' FormatException: Unable to convert '07-30-2018'
' FormatException: Unable to convert '07-30-2018'
' FormatException: Unable to convert '07-30-2018'
' FormatException: Unable to convert '07-30-2018'
' FormatException: Unable to convert '07-30-2018'
'
' -----
'
' Parsing with AssumeUniversal:
' FormatException: Unable to convert '07-30-2018'
' FormatException: Unable to convert '07-30-2018'
' FormatException: Unable to convert '07-30-2018'
' FormatException: Unable to convert '07-30-2018'
' FormatException: Unable to convert '07-30-2018'
' FormatException: Unable to convert '07-30-2018'
' FormatException: Unable to convert '07-30-2018'
Keterangan
Metode ini DateTimeOffset.ParseExact(String, String, IFormatProvider, DateTimeStyles) menguraikan representasi string tanggal, yang harus dalam format yang ditentukan oleh format parameter . Ini juga mengharuskan <elemen Tanggal>, <Waktu>, dan <Offset> dari representasi string tanggal dan waktu muncul dalam urutan yang ditentukan oleh format.
input Jika string tidak cocok dengan pola format parameter, dengan variasi apa pun yang ditentukan oleh styles parameter , metode akan melemparkan FormatException. Sebaliknya, metode mengurai DateTimeOffset.Parse(String, IFormatProvider, DateTimeStyles) representasi string tanggal dalam salah satu format yang dikenali oleh objek penyedia DateTimeFormatInfo format.
Parse juga memungkinkan <elemen Tanggal>, <Waktu>, dan <Offset> dari representasi string tanggal dan waktu muncul dalam urutan apa pun.
Parameter format adalah string yang berisi penentu format standar tunggal atau satu atau beberapa penentu format kustom yang menentukan pola parameter yang input diperlukan. 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 zformat , zz, atau zzz kustom untuk menunjukkan bahwa offset harus ada di input, offset tersebut harus menyertakan tanda negatif atau tanda positif. Jika tanda hilang, metode akan melempar FormatException.
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 DateTimeOffset dihasilkan tergantung pada nilai styles parameter. Jika styles termasuk AssumeLocal, offset zona waktu lokal ditetapkan ke DateTimeOffset objek. Jika styles termasuk AssumeUniversal, offset Waktu Universal Terkoordinasi (UTC), atau +00:00, ditetapkan ke DateTimeOffset objek. Jika tidak ada nilai yang ditentukan, offset zona waktu lokal digunakan.
Simbol dan string tanggal dan waktu tertentu yang digunakan ditentukan input oleh formatProvider parameter . Hal yang sama berlaku untuk format yang tepat dari input, jika format adalah string penentu format standar. Parameter formatProvider dapat berupa salah satu dari yang berikut:
Objek CultureInfo yang mewakili budaya berdasarkan yang
inputditafsirkan. 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 |
Perilaku |
|---|---|
| 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 format tidak mengharuskan yang input berisi nilai offset, objek yang dikembalikan DateTimeOffset diberikan offset zona waktu lokal. Ini adalah nilai 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, 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 tambahan yang tidak ditentukan diabaikan format 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, 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
Berlaku untuk
ParseExact(String, String, IFormatProvider)
- Sumber:
- DateTimeOffset.cs
- Sumber:
- DateTimeOffset.cs
- 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 dan informasi format khusus budaya. Format representasi string harus sama persis dengan format yang ditentukan.
public:
static DateTimeOffset ParseExact(System::String ^ input, System::String ^ format, IFormatProvider ^ formatProvider);
public static DateTimeOffset ParseExact(string input, string format, IFormatProvider formatProvider);
public static DateTimeOffset ParseExact(string input, string format, IFormatProvider? formatProvider);
static member ParseExact : string * string * IFormatProvider -> DateTimeOffset
Public Shared Function ParseExact (input As String, format As String, formatProvider As IFormatProvider) As DateTimeOffset
Parameter
- input
- String
String yang berisi tanggal dan waktu untuk dikonversi.
- format
- String
Penentu format yang menentukan format yang diharapkan dari input.
- formatProvider
- IFormatProvider
Objek yang memasok informasi pemformatan khusus budaya tentang input.
Mengembalikan
Objek yang setara dengan tanggal dan waktu yang terkandung dalam input seperti yang ditentukan oleh format dan formatProvider.
Pengecualian
Offset lebih besar dari 14 jam atau kurang dari -14 jam.
input adalah string kosong ("").
-atau-
input tidak berisi representasi string yang valid dari tanggal dan waktu.
-atau-
format adalah string kosong.
-atau-
Komponen jam dan penunjuk AM/PM di input tidak setuju.
Contoh
Contoh berikut menggunakan DateTimeOffset.ParseExact(String, String, IFormatProvider) metode dengan penentu format standar dan kustom dan budaya invarian untuk mengurai beberapa string tanggal dan waktu.
string dateString, format;
DateTimeOffset result;
CultureInfo provider = CultureInfo.InvariantCulture;
// Parse date-only value with invariant culture.
dateString = "06/15/2008";
format = "d";
try
{
result = DateTimeOffset.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 = DateTimeOffset.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 = DateTimeOffset.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 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 = DateTimeOffset.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 -07:00.
// 6/15/2008 is not in the correct format.
// Sun 15 Jun 2008 8:30 AM -06:00 converts to 6/15/2008 8:30:00 AM -06:00.
// Sun 15 Jun 2008 8:30 AM -06 is not in the correct format.
let provider = CultureInfo.InvariantCulture
// Parse date-only value with invariant culture.
let dateString = "06/15/2008"
let format = "d"
try
let result = DateTimeOffset.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 = DateTimeOffset.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 = DateTimeOffset.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 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 = DateTimeOffset.ParseExact(dateString, format, provider)
printfn $"{dateString} converts to {result}."
with :? FormatException ->
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 -07:00.
// 6/15/2008 is not in the correct format.
// Sun 15 Jun 2008 8:30 AM -06:00 converts to 6/15/2008 8:30:00 AM -06:00.
// Sun 15 Jun 2008 8:30 AM -06 is not in the correct format.
Dim dateString, format As String
Dim result As DateTimeOffset
Dim provider As CultureInfo = CultureInfo.InvariantCulture
' Parse date-only value with invariant culture.
dateString = "06/15/2008"
format = "d"
Try
result = DateTimeOffset.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 = DateTimeOffset.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 = DateTimeOffset.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 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 = DateTimeOffset.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
' The example displays the following output:
' 06/15/2008 converts to 6/15/2008 12:00:00 AM -07:00.
' 6/15/2008 is not in the correct format.
' Sun 15 Jun 2008 8:30 AM -06:00 converts to 6/15/2008 8:30:00 AM -06:00.
' Sun 15 Jun 2008 8:30 AM -06 is not in the correct format.
Contoh berikut mengurai array string yang diharapkan sesuai dengan ISO 8601. Seperti yang ditunjukkan oleh output dari contoh, string dengan spasi di depan atau di belakang gagal diurai, seperti halnya string dengan elemen tanggal dan waktu yang berada di luar rentang.
module parseexact_iso8601
open System
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.0000000Z "
"2018-08-18T12:45:16.0000000+02:00"
"2018-08-18T12:45:16.0000000-07:00" ]
for dateString in dateStrings do
try
let date =
DateTimeOffset.ParseExact(dateString, "O", null)
printfn $"""{dateString, -35} --> {date.ToString "yyyy-MM-dd HH:mm:ss.FF zzz"}"""
with :? FormatException -> printfn $"FormatException: Unable to convert '{dateString}'"
// The example displays the following output:
// 2018-08-18T12:45:16.0000000Z --> 2018-08-18 12:45:16 +00:00
// FormatException: Unable to convert '2018/08/18T12:45:16.0000000Z'
// FormatException: Unable to convert '2018-18-08T12:45:16.0000000Z'
// FormatException: 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;
public class Example2
{
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.0000000Z ",
"2018-08-18T12:45:16.0000000+02:00",
"2018-08-18T12:45:16.0000000-07:00" };
foreach (var dateString in dateStrings)
{
try {
var date = DateTimeOffset.ParseExact(dateString, "O", null);
Console.WriteLine($"{dateString,-35} --> {date:yyyy-MM-dd HH:mm:ss.FF zzz}");
}
catch (FormatException)
{
Console.WriteLine($"FormatException: Unable to convert '{dateString}'");
}
}
}
}
// The example displays the following output:
// 2018-08-18T12:45:16.0000000Z --> 2018-08-18 12:45:16 +00:00
// FormatException: Unable to convert '2018/08/18T12:45:16.0000000Z'
// FormatException: Unable to convert '2018-18-08T12:45:16.0000000Z'
// FormatException: 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
Public Module Example
Public Sub Main()
Dim dateStrings() As String = { "2018-08-18T12:45:16.0000000Z",
"2018/08/18T12:45:16.0000000Z",
"2018-18-08T12:45:16.0000000Z",
" 2018-08-18T12:45:16.0000000Z ",
"2018-08-18T12:45:16.0000000+02:00",
"2018-08-18T12:45:16.0000000-07:00" }
For Each dateStr In dateStrings
Try
Dim dat = DateTimeOffset.ParseExact(dateStr, "O", Nothing)
Console.WriteLine($"{dateStr,-35} --> {dat:yyyy-MM-dd HH:mm:ss.FF zzz}")
Catch e As FormatException
Console.WriteLine($"FormatException: Unable to convert '{dateStr}'")
End Try
Next
End Sub
End Module
' The example displays the following output:
' 2018-08-18T12:45:16.0000000Z --> 2018-08-18 12:45:16 +00:00
' FormatException: Unable to convert '2018/08/18T12:45:16.0000000Z'
' FormatException: Unable to convert '2018-18-08T12:45:16.0000000Z'
' FormatException: 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
Metode ini ParseExact(String, String, IFormatProvider) menguraikan representasi string tanggal, yang harus dalam format yang ditentukan oleh format parameter . Ini juga mengharuskan <elemen Tanggal>, <Waktu>, dan <Offset> dari representasi string tanggal dan waktu muncul dalam urutan yang ditentukan oleh format.
input Jika string tidak cocok dengan parameter iniformat, metode akan melempar .FormatException Sebaliknya, metode mengurai DateTimeOffset.Parse(String, IFormatProvider) representasi string tanggal dalam salah satu format yang dikenali oleh objek penyedia DateTimeFormatInfo format.
Parse juga memungkinkan <elemen Tanggal>, <Waktu>, dan <Offset> dari representasi string tanggal dan waktu muncul dalam urutan apa pun.
Parameter format adalah string yang berisi penentu format standar tunggal atau satu atau beberapa penentu format kustom yang menentukan format parameter yang input diperlukan. 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 zformat , zz, atau zzz kustom untuk menunjukkan bahwa offset harus ada di input, offset tersebut harus menyertakan tanda negatif atau tanda positif. Jika tanda hilang, metode akan melempar FormatException.
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, objek yang DateTimeOffset dihasilkan ditetapkan offset zona waktu sistem lokal.
Simbol dan string tanggal dan waktu tertentu yang digunakan di input didefinisikan oleh formatProvider parameter, seperti format yang tepat jika inputformat adalah string penentu format standar. Parameter formatProvider dapat berupa salah satu dari yang berikut:
Objek CultureInfo yang mewakili budaya berdasarkan yang
inputditafsirkan. Objek DateTimeFormatInfo yang dikembalikan oleh propertinya DateTimeFormat 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.
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
Berlaku untuk
ParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles)
- Sumber:
- DateTimeOffset.cs
- Sumber:
- DateTimeOffset.cs
- Sumber:
- DateTimeOffset.cs
- Sumber:
- DateTimeOffset.cs
- Sumber:
- DateTimeOffset.cs
Mengonversi rentang karakter yang mewakili tanggal dan waktu yang 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 DateTimeOffset ParseExact(ReadOnlySpan<char> input, ReadOnlySpan<char> format, IFormatProvider? formatProvider, System.Globalization.DateTimeStyles styles = System.Globalization.DateTimeStyles.None);
public static DateTimeOffset ParseExact(ReadOnlySpan<char> input, ReadOnlySpan<char> format, IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles = System.Globalization.DateTimeStyles.None);
static member ParseExact : ReadOnlySpan<char> * ReadOnlySpan<char> * IFormatProvider * System.Globalization.DateTimeStyles -> DateTimeOffset
Public Shared Function ParseExact (input As ReadOnlySpan(Of Char), format As ReadOnlySpan(Of Char), formatProvider As IFormatProvider, Optional styles As DateTimeStyles = System.Globalization.DateTimeStyles.None) As DateTimeOffset
Parameter
- input
- ReadOnlySpan<Char>
Rentang karakter yang mewakili tanggal dan waktu.
- format
- ReadOnlySpan<Char>
Rentang karakter yang berisi penentu format yang menentukan format yang diharapkan dari input.
- formatProvider
- IFormatProvider
Objek yang menyediakan informasi pemformatan khusus budaya tentang input.
- styles
- DateTimeStyles
Kombinasi bitwise dari nilai enumerasi yang menunjukkan format yang diizinkan dari input.
Mengembalikan
Objek yang setara dengan tanggal dan waktu yang terkandung dalam input parameter, seperti yang ditentukan oleh formatparameter , , formatProviderdan styles .
Pengecualian
Offset lebih besar dari 14 jam atau kurang dari -14 jam.
-or- Parameter styles menyertakan nilai yang tidak didukung.
-or- Parameter styles berisi DateTimeStyles nilai yang tidak dapat digunakan bersama-sama.
input adalah rentang karakter kosong.
-or- input tidak berisi representasi string yang valid dari tanggal dan waktu.
-atau- format adalah rentang karakter kosong.
-atau- Komponen jam dan penunjuk AM/PM di input tidak setuju.
Keterangan
Metode ini menguraikan rentang karakter yang mewakili tanggal, yang harus dalam format yang ditentukan oleh format parameter. Ini juga mengharuskan <elemen Tanggal>, <Waktu>, dan <Offset> dari representasi string tanggal dan waktu muncul dalam urutan yang ditentukan oleh format. Jika input tidak cocok dengan format pola, metode akan melempar FormatException. Sebaliknya, metode mengurai DateTimeOffset.Parse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles) representasi string tanggal dalam salah satu format yang dikenali oleh objek penyedia DateTimeFormatInfo format.
Parse juga memungkinkan <elemen Tanggal>, <Waktu>, dan <Offset> dari representasi string tanggal dan waktu muncul dalam urutan apa pun.
Parameter format adalah rentang karakter yang berisi penentu format standar karakter tunggal atau satu atau beberapa penentu format kustom yang menentukan format parameter yang input diperlukan. 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 zformat , zz, atau zzz kustom untuk menunjukkan bahwa offset harus ada di input, offset tersebut harus menyertakan tanda negatif atau tanda positif. Jika tanda hilang, metode akan melempar FormatException.
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, objek yang DateTimeOffset dihasilkan ditetapkan offset zona waktu sistem lokal.
Simbol dan string tanggal dan waktu tertentu yang digunakan di input didefinisikan oleh formatProvider parameter, seperti format yang tepat jika inputformat adalah penentu format standar. Parameter formatProvider dapat berupa salah satu dari yang berikut:
Objek CultureInfo yang mewakili budaya berdasarkan yang
inputditafsirkan. Objek DateTimeFormatInfo yang dikembalikan oleh propertinya DateTimeFormat 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.
Berlaku untuk
ParseExact(ReadOnlySpan<Char>, String[], IFormatProvider, DateTimeStyles)
- Sumber:
- DateTimeOffset.cs
- Sumber:
- DateTimeOffset.cs
- Sumber:
- DateTimeOffset.cs
- Sumber:
- DateTimeOffset.cs
- Sumber:
- DateTimeOffset.cs
Mengonversi rentang karakter yang berisi representasi string tanggal dan waktu yang 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 DateTimeOffset ParseExact(ReadOnlySpan<char> input, string[] formats, IFormatProvider? formatProvider, System.Globalization.DateTimeStyles styles = System.Globalization.DateTimeStyles.None);
public static DateTimeOffset ParseExact(ReadOnlySpan<char> input, string[] formats, IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles = System.Globalization.DateTimeStyles.None);
static member ParseExact : ReadOnlySpan<char> * string[] * IFormatProvider * System.Globalization.DateTimeStyles -> DateTimeOffset
Public Shared Function ParseExact (input As ReadOnlySpan(Of Char), formats As String(), formatProvider As IFormatProvider, Optional styles As DateTimeStyles = System.Globalization.DateTimeStyles.None) As DateTimeOffset
Parameter
- input
- ReadOnlySpan<Char>
Rentang karakter yang berisi tanggal dan waktu untuk dikonversi.
- formats
- String[]
Array penentu format 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 yang diizinkan dari input.
Mengembalikan
Objek yang setara dengan tanggal dan waktu yang terkandung dalam input parameter, seperti yang ditentukan oleh formatsparameter , , formatProviderdan styles .
Pengecualian
Offset lebih besar dari 14 jam atau kurang dari -14 jam.
-atau- styles menyertakan nilai yang tidak didukung.
-or- Parameter styles berisi DateTimeStyles nilai yang tidak dapat digunakan bersama-sama.
input adalah rentang karakter kosong.
-or- input tidak berisi representasi string yang valid dari tanggal dan waktu.
-or- Tidak ada elemen berisi formats penentu format yang valid.
-atau- Komponen jam dan penunjuk AM/PM di input tidak setuju.
Keterangan
Metode ini menguraikan rentang karakter yang mewakili tanggal yang cocok dengan salah satu pola yang ditetapkan ke formats parameter. Jika input tidak cocok dengan salah satu pola ini dengan salah satu variasi yang ditentukan oleh styles parameter, metode melemparkan FormatException. Selain membandingkan input dengan beberapa pola pemformatan, kelebihan beban ini berperilaku identik dengan DateTimeOffset.ParseExact(ReadOnlySpan<Char>, ReadOnlySpan<Char>, 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 parameter yang input mungkin. Ketika metode dipanggil, input harus cocok dengan salah satu pola ini. 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, , zzatau zzz penentu format kustom untuk menunjukkan bahwa offset harus ada di input, offset tersebut harus menyertakan tanda negatif atau tanda positif. Jika tanda hilang, metode akan melempar FormatException.
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 kurang nol di depan dalam bulan, hari, jam, menit, dan detik.
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 yang input berisi waktu tetapi bukan tanggal, objek yang DateTimeOffset dihasilkan diberi tanggal saat ini pada sistem lokal. Jika elemen yang cocok di formats tidak memerlukan yang input berisi offset, offset objek yang DateTimeOffset dihasilkan tergantung pada nilai styles parameter. Jika styles termasuk AssumeLocal, offset zona waktu lokal ditetapkan ke DateTimeOffset objek. Jika styles termasuk AssumeUniversal, offset Waktu Universal Terkoordinasi (UTC), atau +00:00, ditetapkan ke DateTimeOffset objek. Jika tidak ada nilai yang ditentukan, offset zona waktu lokal digunakan.
Simbol dan string tanggal dan waktu tertentu yang digunakan ditentukan input oleh formatProvider parameter . Hal yang sama berlaku untuk format yang tepat dari input, jika elemen yang cocok adalah formats string penentu format standar. Parameter formatProvider dapat berupa salah satu dari yang berikut:
Objek CultureInfo yang mewakili budaya berdasarkan yang
inputditafsirkan. 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 |
Perilaku |
|---|---|
| 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 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 format. Ruang kosong ekstra dapat muncul antara komponen tanggal dan waktu dan dalam komponen individual (kecuali offset), dan diabaikan saat mengurai string. |
| AllowLeadingWhite | Memungkinkan input untuk menyertakan spasi di depan yang tidak ditentukan oleh formats. Ini diabaikan saat mengurai string. |
| AllowTrailingWhite | Memungkinkan input untuk menyertakan spasi berikutnya yang tidak ditentukan oleh formats. Ini diabaikan saat mengurai string. |
| AllowWhiteSpaces | Memungkinkan input untuk menyertakan spasi di depan, di belakang, dan dalam yang tidak ditentukan oleh formats. Semua karakter spasi putih tambahan 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 formats tertentu untuk terjadinya kecocokan. Ini adalah perilaku default. |
| RoundtripKind | Tidak berpengaruh karena DateTimeOffset struktur tidak menyertakan Kind properti. |