Bagikan melalui


DateTimeOffset.ParseExact Metode

Definisi

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:

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 null.

-atau-

format adalah null.

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:

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:

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 null.

-atau-

format adalah null.

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:

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:

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:

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.

Berlaku untuk