DateTimeOffset.Parse Metoda

Definicja

Konwertuje określoną reprezentację ciągu daty i godziny na jej DateTimeOffset odpowiednik.

Przeciążenia

Parse(String)

Konwertuje określoną reprezentację ciągu daty, godziny i przesunięcia na jego DateTimeOffset odpowiednik.

Parse(ReadOnlySpan<Char>, IFormatProvider)

Analizuje zakres znaków w wartości.

Parse(String, IFormatProvider)

Konwertuje określoną reprezentację ciągu daty i godziny na jej DateTimeOffset odpowiednik przy użyciu określonych informacji o formacie specyficznym dla kultury.

Parse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles)

Konwertuje określoną reprezentację zakresu daty i godziny na odpowiednik DateTimeOffset przy użyciu określonych informacji o formacie specyficznym dla kultury i stylu formatowania.

Parse(String, IFormatProvider, DateTimeStyles)

Konwertuje określoną reprezentację ciągu daty i godziny na równoważną DateTimeOffset przy użyciu określonych informacji o formacie kultury i stylu formatowania.

Uwagi

Ważne

Ery w kalendarzach japońskich są oparte na suchem rzeszy i w związku z tym oczekuje się, że zmienią się. Na przykład 1 maja 2019 r. oznaczał początek ery Reiwa w i JapaneseCalendar JapaneseLunisolarCalendar . Taka zmiana ery ma wpływ na wszystkie aplikacje, które używają tych kalendarzy. Aby uzyskać więcej informacji i określić, czy dotyczy to aplikacji, zobacz Obsługa nowej ery w kalendarzu japońskim na platformie .NET. Aby uzyskać informacje na temat testowania aplikacji w Windows w celu zapewnienia ich gotowości na zmianę ery, zobacz Przygotowanie aplikacji na zmianę ery japońskiej. Aby uzyskać informacje o funkcjach na platformie .NET, które obsługują kalendarze z wieloma erami, oraz o najlepszych rozwiązaniach podczas pracy z kalendarzami, które obsługują wiele er, zobacz Praca z erami.

Parse(String)

Konwertuje określoną reprezentację ciągu daty, godziny i przesunięcia na jego DateTimeOffset odpowiednik.

public:
 static DateTimeOffset Parse(System::String ^ input);
public static DateTimeOffset Parse (string input);
static member Parse : string -> DateTimeOffset
Public Shared Function Parse (input As String) As DateTimeOffset

Parametry

input
String

Ciąg zawierający datę i godzinę, które należy przekształcić.

Zwraca

DateTimeOffset

Obiekt, który jest odpowiednikiem daty i godziny zawartej w elemencie input.

Wyjątki

Przesunięcie jest większe niż 14 godzin lub mniejsze niż-14 godzin.

input to null.

input nie zawiera prawidłowej reprezentacji ciągu daty i godziny.

-lub-

input zawiera reprezentację ciągu wartości przesunięcia bez daty lub godziny.

Przykłady

Poniższy przykład wywołuje metodę Parse(String) , aby przeanalizować kilka ciągów daty i godziny. Przykład zawiera dane wyjściowe z 22 marca 2007 r. w systemie, którego kultura jest en-us.

string dateString;
DateTimeOffset offsetDate;

// String with date only
dateString = "05/01/2008";
offsetDate = DateTimeOffset.Parse(dateString);
Console.WriteLine(offsetDate.ToString());

// String with time only
dateString = "11:36 PM";
offsetDate = DateTimeOffset.Parse(dateString);
Console.WriteLine(offsetDate.ToString());

// String with date and offset
dateString = "05/01/2008 +1:00";
offsetDate = DateTimeOffset.Parse(dateString);
Console.WriteLine(offsetDate.ToString());

// String with day abbreviation
dateString = "Thu May 01, 2008";
offsetDate = DateTimeOffset.Parse(dateString);
Console.WriteLine(offsetDate.ToString());
// String with date only
let dateString = "05/01/2008"
let offsetDate = DateTimeOffset.Parse dateString
printfn $"{offsetDate}"

// String with time only
let dateString = "11:36 PM"
let offsetDate = DateTimeOffset.Parse dateString
printfn $"{offsetDate}"

// String with date and offset
let dateString = "05/01/2008 +1:00"
let offsetDate = DateTimeOffset.Parse dateString
printfn $"{offsetDate}"

// String with day abbreviation
let dateString = "Thu May 01, 2008"
let offsetDate = DateTimeOffset.Parse(dateString)
printfn $"{offsetDate}"
Dim dateString As String
Dim offsetDate As DateTimeOffset

' String with date only
dateString = "05/01/2008"
offsetDate = DateTimeOffset.Parse(dateString)
Console.WriteLine(offsetDate.ToString())   ' Displays 5/1/2008 12:00:00 AM -07:00  

' String with time only
dateString = "11:36 PM"
offsetDate = DateTimeOffset.Parse(dateString)
Console.WriteLine(offsetDate.ToString())   ' Displays 3/26/2007 11:36:00 PM -07:00

' String with date and offset 
dateString = "05/01/2008 +7:00"
offsetDate = DateTimeOffset.Parse(dateString)
Console.WriteLine(offsetDate.ToString())   ' Displays 5/1/2008 12:00:00 AM +07:00

' String with day abbreviation
dateString = "Thu May 01, 2008"
offsetDate = DateTimeOffset.Parse(dateString)
Console.WriteLine(offsetDate.ToString())   ' Displays 5/1/2008 12:00:00 AM -07:00

Uwagi

Parse(String) Analizuje ciąg z trzema elementami, które mogą pojawiać się w dowolnej kolejności i są rozdzielane białym znakiem. Te trzy elementy są pokazane w poniższej tabeli.

Element Przykład
<Date> "2/10/2007"
<Time> "1:02:03 PM"
<Offset> "-7:30"

Chociaż każdy z tych elementów jest opcjonalny, <Offset> nie może pojawić się samodzielnie. Należy go podać razem z elementem <Date> lub <Time>. Jeśli <Date> jej brakuje, jego wartością domyślną jest bieżący dzień. Jeśli <Time> jej brakuje, jego wartość domyślna to 12:00:00. Jeśli <Date> element jest obecny, ale jego składnik roku składa się tylko z dwóch cyfr, jest konwertowany na rok w bieżącym kalendarzu bieżącej kultury na podstawie wartości Calendar.TwoDigitYearMax właściwości. Jeśli <Offset> jej brakuje, jego wartością domyślną jest przesunięcie lokalnej strefy czasowej. <Offset> może reprezentować ujemne lub dodatnie przesunięcie z uniwersalnego czasu koordynowanego (UTC). W obu przypadkach <Offset> musi zawierać symbol znaku.

Ciąg input jest analizowany przy użyciu informacji o formatowaniu w obiekcie zainicjowanym DateTimeFormatInfo dla bieżącej kultury. Aby przeanalizować ciąg zawierający wyznaczone formatowanie, które niekoniecznie odpowiada formatowaniu bieżącej kultury, użyj ParseExact metody i podaj specyfikator formatu.

Zobacz też

Dotyczy

Parse(ReadOnlySpan<Char>, IFormatProvider)

Analizuje zakres znaków w wartości.

public:
 static DateTimeOffset Parse(ReadOnlySpan<char> s, IFormatProvider ^ provider) = ISpanParsable<DateTimeOffset>::Parse;
public static DateTimeOffset Parse (ReadOnlySpan<char> s, IFormatProvider? provider);
static member Parse : ReadOnlySpan<char> * IFormatProvider -> DateTimeOffset
Public Shared Function Parse (s As ReadOnlySpan(Of Char), provider As IFormatProvider) As DateTimeOffset

Parametry

provider
IFormatProvider

Zwraca

DateTimeOffset

Wynik analizy s.

Implementuje

Dotyczy

Parse(String, IFormatProvider)

Konwertuje określoną reprezentację ciągu daty i godziny na jej DateTimeOffset odpowiednik przy użyciu określonych informacji o formacie specyficznym dla kultury.

public:
 static DateTimeOffset Parse(System::String ^ input, IFormatProvider ^ formatProvider);
public:
 static DateTimeOffset Parse(System::String ^ input, IFormatProvider ^ formatProvider) = IParsable<DateTimeOffset>::Parse;
public static DateTimeOffset Parse (string input, IFormatProvider formatProvider);
public static DateTimeOffset Parse (string input, IFormatProvider? formatProvider);
static member Parse : string * IFormatProvider -> DateTimeOffset
Public Shared Function Parse (input As String, formatProvider As IFormatProvider) As DateTimeOffset

Parametry

input
String

Ciąg zawierający datę i godzinę, które należy przekształcić.

formatProvider
IFormatProvider

Obiekt, który udostępnia informacje o formacie specyficznym dla kultury.input

Zwraca

DateTimeOffset

Obiekt, który jest odpowiednikiem daty i godziny zawartej w inputelemencie , jak określono w elemencie formatProvider.

Implementuje

Wyjątki

Przesunięcie jest większe niż 14 godzin lub mniejsze niż-14 godzin.

input to null.

input nie zawiera prawidłowej reprezentacji ciągu daty i godziny.

-lub-

input zawiera reprezentację ciągu wartości przesunięcia bez daty lub godziny.

Przykłady

Poniższy przykład analizuje ciągi daty i godziny sformatowane dla kultury fr-fr i wyświetla je przy użyciu domyślnej kultury en-us systemu lokalnego.

DateTimeFormatInfo fmt = new CultureInfo("fr-fr").DateTimeFormat;
string dateString;
DateTimeOffset offsetDate;

dateString = "03-12-07";
offsetDate = DateTimeOffset.Parse(dateString, fmt);
Console.WriteLine("{0} returns {1}",
                  dateString,
                  offsetDate.ToString());

dateString = "15/09/07 08:45:00 +1:00";
offsetDate = DateTimeOffset.Parse(dateString, fmt);
Console.WriteLine("{0} returns {1}",
                  dateString,
                  offsetDate.ToString());

dateString = "mar. 1 janvier 2008 1:00:00 +1:00";
offsetDate = DateTimeOffset.Parse(dateString, fmt);
Console.WriteLine("{0} returns {1}",
                  dateString,
                  offsetDate.ToString());
// The example displays the following output to the console:
//    03-12-07 returns 12/3/2007 12:00:00 AM -08:00
//    15/09/07 08:45:00 +1:00 returns 9/15/2007 8:45:00 AM +01:00
//    mar. 1 janvier 2008 1:00:00 +1:00 returns 1/1/2008 1:00:00 AM +01:00
let fmt = CultureInfo("fr-fr").DateTimeFormat
let dateString = "03-12-07"
let offsetDate = DateTimeOffset.Parse(dateString, fmt)
printfn $"{dateString} returns {offsetDate}"

let dateString = "15/09/07 08:45:00 +1:00"
let offsetDate = DateTimeOffset.Parse(dateString, fmt)
printfn $"{dateString} returns {offsetDate}"

let dateString = "mar. 1 janvier 2008 1:00:00 +1:00"
let offsetDate = DateTimeOffset.Parse(dateString, fmt)
printfn $"{dateString} returns {offsetDate}"

// The example displays the following output to the console:
//    03-12-07 returns 12/3/2007 12:00:00 AM -08:00
//    15/09/07 08:45:00 +1:00 returns 9/15/2007 8:45:00 AM +01:00
//    mar. 1 janvier 2008 1:00:00 +1:00 returns 1/1/2008 1:00:00 AM +01:00
Dim fmt As DateTimeFormatInfo = New CultureInfo("fr-fr").DateTimeFormat
Dim dateString As String
Dim offsetDate As DateTimeOffset

dateString = "03-12-07"
offsetDate = DateTimeOffset.Parse(dateString, fmt)
Console.WriteLine("{0} returns {1}", _
                  dateString, _
                  offsetDate.ToString())

dateString = "15/09/07 08:45:00 +1:00"
offsetDate = DateTimeOffset.Parse(dateString, fmt)
Console.WriteLine("{0} returns {1}", _
                  dateString, _
                  offsetDate.ToString())

dateString = "mar. 1 janvier 2008 1:00:00 +1:00" 
offsetDate = DateTimeOffset.Parse(dateString, fmt)
Console.WriteLine("{0} returns {1}", _
                  dateString, _
                  offsetDate.ToString())
' The example displays the following output to the console:
'    03-12-07 returns 12/3/2007 12:00:00 AM -08:00
'    15/09/07 08:45:00 +1:00 returns 9/15/2007 8:45:00 AM +01:00
'    mar. 1 janvier 2008 1:00:00 +1:00 returns 1/1/2008 1:00:00 AM +01:00

Uwagi

Ta metoda analizuje ciąg z trzema elementami, które mogą pojawiać się w dowolnej kolejności i są rozdzielane białym znakiem. W poniższej tabeli przedstawiono te trzy elementy.

Element Przykład
<Date> "2/10/2007"
<Time> "1:02:03 PM"
<Offset> "-7:30"

Chociaż każdy z tych elementów jest opcjonalny, <Offset> nie może pojawić się samodzielnie. Należy go podać razem z elementem <Date> lub <Time>. Jeśli <Date> brakuje, jego wartość domyślna to bieżący dzień. Jeśli <Date> jest obecny, ale jego składnik roku składa się tylko z dwóch cyfr, jest konwertowany na rok w provider bieżącym kalendarzu parametru na podstawie wartości Calendar.TwoDigitYearMax właściwości. Jeśli <Time> brakuje, jego wartość domyślna to 12:00:00. Jeśli <Offset> brakuje, jego wartość domyślna to przesunięcie lokalnej strefy czasowej. <Offset> może reprezentować ujemne lub dodatnie przesunięcie z uniwersalnego czasu koordynowanego (UTC). W obu przypadkach <Offset> musi zawierać symbol znaku.

Format tych trzech elementów jest definiowany przez formatProvider parametr, który może być jednym z następujących elementów:

Jeśli formatprovider jest to null, CultureInfo używany jest obiekt odpowiadający bieżącej kulturze.

Znak dodatni lub ujemny używany w <Offset> pliku musi mieć wartość + lub -. Nie jest definiowana PositiveSign przez właściwości NumberFormatInfo lub NegativeSign obiektu parametruformatProvider.

Zobacz też

Dotyczy

Parse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles)

Konwertuje określoną reprezentację zakresu daty i godziny na odpowiednik DateTimeOffset przy użyciu określonych informacji o formacie specyficznym dla kultury i stylu formatowania.

public static DateTimeOffset Parse (ReadOnlySpan<char> input, IFormatProvider? formatProvider = default, System.Globalization.DateTimeStyles styles = System.Globalization.DateTimeStyles.None);
public static DateTimeOffset Parse (ReadOnlySpan<char> input, IFormatProvider formatProvider = default, System.Globalization.DateTimeStyles styles = System.Globalization.DateTimeStyles.None);
static member Parse : ReadOnlySpan<char> * IFormatProvider * System.Globalization.DateTimeStyles -> DateTimeOffset
Public Shared Function Parse (input As ReadOnlySpan(Of Char), Optional formatProvider As IFormatProvider = Nothing, Optional styles As DateTimeStyles = System.Globalization.DateTimeStyles.None) As DateTimeOffset

Parametry

input
ReadOnlySpan<Char>

Zakres zawierający znaki reprezentujące datę i godzinę konwersji.

formatProvider
IFormatProvider

Obiekt, który udostępnia informacje o formacie specyficznym dla kultury dotyczące inputelementu .

styles
DateTimeStyles

Bitowa kombinacja wartości wyliczenia wskazująca dozwolony format .input Typową wartością do określenia jest None.

Zwraca

DateTimeOffset

Obiekt, który jest odpowiednikiem daty i godziny zawartej w input określonym przez formatProvider element i styles.

Dotyczy

Parse(String, IFormatProvider, DateTimeStyles)

Konwertuje określoną reprezentację ciągu daty i godziny na równoważną DateTimeOffset przy użyciu określonych informacji o formacie kultury i stylu formatowania.

public:
 static DateTimeOffset Parse(System::String ^ input, IFormatProvider ^ formatProvider, System::Globalization::DateTimeStyles styles);
public static DateTimeOffset Parse (string input, IFormatProvider formatProvider, System.Globalization.DateTimeStyles styles);
public static DateTimeOffset Parse (string input, IFormatProvider? formatProvider, System.Globalization.DateTimeStyles styles);
static member Parse : string * IFormatProvider * System.Globalization.DateTimeStyles -> DateTimeOffset
Public Shared Function Parse (input As String, formatProvider As IFormatProvider, styles As DateTimeStyles) As DateTimeOffset

Parametry

input
String

Ciąg zawierający datę i godzinę, które należy przekształcić.

formatProvider
IFormatProvider

Obiekt, który udostępnia informacje o formacie specyficznym dla kultury dotyczące inputelementu .

styles
DateTimeStyles

Bitowa kombinacja wartości wyliczenia wskazująca dozwolony format .input Typową wartością do określenia jest None.

Zwraca

DateTimeOffset

Obiekt, który jest odpowiednikiem daty i godziny zawartej w input określonym przez formatProvider element i styles.

Wyjątki

Przesunięcie jest większe niż 14 godzin lub mniejsze niż-14 godzin.

-lub-

styles jest nieprawidłową DateTimeStyles wartością.

-lub-

styles zawiera nieobsługiwaną DateTimeStyles wartość.

-lub-

styles zawiera DateTimeStyles wartości, których nie można używać razem.

input to null.

input nie zawiera prawidłowej reprezentacji ciągu daty i godziny.

-lub-

input zawiera reprezentację ciągu wartości przesunięcia bez daty lub godziny.

Przykłady

Poniższy przykład ilustruje efekt przekazywania DateTimeStyles.AssumeLocalwartości , DateTimeStyles.AssumeUniversali DateTimeStyles.AdjustToUniversal do styles parametru Parse(String, IFormatProvider, DateTimeStyles) metody .

string dateString;
DateTimeOffset offsetDate;

dateString = "05/01/2008 6:00:00";
// Assume time is local
offsetDate = DateTimeOffset.Parse(dateString, null, DateTimeStyles.AssumeLocal);
Console.WriteLine(offsetDate.ToString());   // Displays 5/1/2008 6:00:00 AM -07:00

// Assume time is UTC
offsetDate = DateTimeOffset.Parse(dateString, null, DateTimeStyles.AssumeUniversal);
Console.WriteLine(offsetDate.ToString());   // Displays 5/1/2008 6:00:00 AM +00:00

// Parse and convert to UTC
dateString = "05/01/2008 6:00:00AM +5:00";
offsetDate = DateTimeOffset.Parse(dateString, null, DateTimeStyles.AdjustToUniversal);
Console.WriteLine(offsetDate.ToString());   // Displays 5/1/2008 1:00:00 AM +00:00
let dateString = "05/01/2008 6:00:00"
// Assume time is local
let offsetDate = DateTimeOffset.Parse(dateString, null, DateTimeStyles.AssumeLocal)
printfn $"{offsetDate}"   // Displays 5/1/2008 6:00:00 AM -07:00

// Assume time is UTC
let offsetDate = DateTimeOffset.Parse(dateString, null, DateTimeStyles.AssumeUniversal)
printfn $"{offsetDate}"   // Displays 5/1/2008 6:00:00 AM +00:00

// Parse and convert to UTC
let dateString = "05/01/2008 6:00:00AM +5:00"
let offsetDate = DateTimeOffset.Parse(dateString, null, DateTimeStyles.AdjustToUniversal)
printfn $"{offsetDate}"   // Displays 5/1/2008 1:00:00 AM +00:00
Dim dateString As String
Dim offsetDate As DateTimeOffset

dateString = "05/01/2008 6:00:00"
' Assume time is local 
offsetDate = DateTimeOffset.Parse(dateString, Nothing, DateTimeStyles.AssumeLocal)
Console.WriteLine(offsetDate.ToString())   ' Displays 5/1/2008 6:00:00 AM -07:00

' Assume time is UTC
offsetDate = DateTimeOffset.Parse(dateString, Nothing, DateTimeStyles.AssumeUniversal)
Console.WriteLine(offsetDate.ToString())   ' Displays 5/1/2008 6:00:00 AM +00:00

' Parse and convert to UTC 
dateString = "05/01/2008 6:00:00AM +5:00"
offsetDate = DateTimeOffset.Parse(dateString, Nothing, DateTimeStyles.AdjustToUniversal)
Console.WriteLine(offsetDate.ToString())   ' Displays 5/1/2008 1:00:00 AM +00:00

Uwagi

Ta metoda analizuje ciąg z trzema elementami, które mogą pojawić się w dowolnej kolejności i są rozdzielane białym znakiem. W poniższej tabeli przedstawiono te trzy elementy.

Element Przykład
<Date> "2/10/2007"
<Time> "1:02:03 PM"
<Offset> "-7:30"

Chociaż każdy z tych elementów jest opcjonalny, <Offset> nie może pojawić się samodzielnie. Należy go podać razem z elementem <Date> lub <Time>. Jeśli <Date> brakuje, jego wartość domyślna to bieżący dzień. Jeśli <Date> jest obecny, ale jego składnik roku składa się tylko z dwóch cyfr, jest konwertowany na rok w provider bieżącym kalendarzu parametru na podstawie wartości Calendar.TwoDigitYearMax właściwości. Jeśli <Time> brakuje, jego wartość domyślna to 12:00:00. Jeśli <Offset> brakuje, jego wartość domyślna jest przesunięciem lokalnej strefy czasowej lub TimeSpan.Zero jeśli DateTimeStyles.AdjustToUniversal wartość lub DateTimeStyles.AssumeUniversal jest określona w parametrze styles . Jeśli <Offset> jest obecny, może reprezentować ujemne lub dodatnie przesunięcie z uniwersalnego czasu koordynowanego (UTC). W obu przypadkach <Offset> musi zawierać symbol znaku.

Format tych trzech elementów jest definiowany przez formatProvider parametr, który może być jednym z następujących elementów:

Każdy element można również ujęć za pomocą wiodącego lub końcowego białego odstępu, a <Date> elementy i <Time> mogą zawierać wewnętrzne białe znaki (takie jak 6: 00:00). <Offset> Tylko składnik nie może zawierać wewnętrznego odstępu.

Jeśli formatprovider jest to null, CultureInfo używany jest obiekt odpowiadający bieżącej kulturze.

Znak dodatni lub ujemny używany w <Offset> pliku musi mieć wartość + lub -. Nie jest definiowana PositiveSign przez właściwości NumberFormatInfo lub NegativeSign obiektu zwróconego przez formatProvider parametr .

W poniższej tabeli przedstawiono elementy członkowskie obsługiwanego System.Globalization.DateTimeStyles wyliczenia.

Element członkowski DateTimeStyles Opis
AdjustToUniversal Analizuje ciąg reprezentowany przez input i, w razie potrzeby, konwertuje go na UTC. Jest on odpowiednikiem analizowania ciągu, a następnie wywoływania DateTimeOffset.ToUniversalTime metody zwracanego DateTimeOffset obiektu.
AllowInnerWhite Choć ważna, wartość ta jest ignorowana. Wewnętrzny biały odstęp jest dozwolony w elementach <Date> i <Time> .
AllowLeadingWhite Choć ważna, wartość ta jest ignorowana. Wiodące odstępy są dozwolone przed każdym składnikiem w ciągu analizowanego.
AllowTrailingWhite Choć ważna, wartość ta jest ignorowana. Końcowe białe znaki są dozwolone przed każdym składnikiem w ciągu przeanalizowanym.
AllowWhiteSpaces Jest to zachowanie domyślne. Nie można go zastąpić, podając bardziej restrykcyjną DateTimeStyles wartość wyliczenia, taką jak DateTimeStyles.None.
AssumeLocal Wskazuje, że jeśli input parametr nie zawiera <Offset> elementu, należy podać przesunięcie lokalnej strefy czasowej. Jest to domyślne zachowanie Parse metody.
AssumeUniversal Wskazuje, że jeśli input parametr nie zawiera <Offset> elementu, należy podać przesunięcie UTC (00:00).
None Mimo że jest prawidłowa, ta wartość jest ignorowana i nie ma żadnego wpływu.
RoundtripKind DateTimeOffset Ponieważ struktura nie zawiera Kind właściwości, ta wartość nie ma wpływu.

Tylko wartość nie jest obsługiwana DateTimeStyles.NoCurrentDateDefault . Wartość ArgumentException jest zgłaszana, jeśli ta wartość jest uwzględniona w parametrze styles .

Zobacz też

Dotyczy