共用方式為


DateTimeOffset.Parse 方法

定義

將指定的字串表示日期與時間轉換為其 DateTimeOffset 等價值。

多載

名稱 Description
Parse(String)

將指定的日期、時間與偏移的字串表示轉換為其 DateTimeOffset 等價值。

Parse(ReadOnlySpan<Char>, IFormatProvider)

將字元範圍剖析為值。

Parse(String, IFormatProvider)

利用指定的文化特定格式資訊,將指定的日期與時間字串表示轉換為其 DateTimeOffset 對應的日期與時間。

Parse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles)

利用指定的文化特有格式資訊與格式風格,將指定跨度的日期與時間表示轉換為其 DateTimeOffset 對應版本。

Parse(String, IFormatProvider, DateTimeStyles)

利用指定的文化特有格式資訊與格式風格,將指定的日期與時間字串表示轉換為對 DateTimeOffset 應的日期與時間。

備註

這很重要

日本日曆中的紀元基於皇帝的統治,因此預計將改變。 例如,2019 年 5 月 1 日在 JapaneseCalendarJapaneseLunisolarCalendar中標示了 Reiwa 時代的開頭。 這種時代變更會影響使用這些行事曆的所有應用程式。 如需詳細資訊,以及判斷您的應用程式是否受到影響,請參閱 處理 .NET 中日曆中的新紀元。 如需在 Windows 系統上測試應用程式,以確保其準備迎接時代變更的相關信息,請參閱 準備您的應用程式以取得日本年號變更。 如需 .NET 中支援具有多個紀元的行事曆功能,以及使用支援多個紀元的行事曆時的最佳作法,請參閱 使用紀元

Parse(String)

來源:
DateTimeOffset.cs
來源:
DateTimeOffset.cs
來源:
DateTimeOffset.cs
來源:
DateTimeOffset.cs
來源:
DateTimeOffset.cs

將指定的日期、時間與偏移的字串表示轉換為其 DateTimeOffset 等價值。

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

參數

input
String

一個包含日期和時間的字串,需轉換。

傳回

一個等價於所包含 input於 的日期和時間的物件。

例外狀況

偏移時間大於14小時或少於 -14 小時。

inputnull

input 不包含有效的日期與時間字串表示。

-或-

input 包含一個不包含日期或時間的偏移值字串表示法。

範例

以下範例會呼叫 Parse(String) 解析多個日期與時間字串的方法。 範例包含 2007 年 3 月 22 日對一個文化為 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

備註

Parse(String) 解析一個包含三個元素的字串,這些元素可以以任意順序出現,並以空白區隔。 這三個元素如下表所示。

元素 範例
<日期> "2/10/2007"
<時間> 「下午1:02:03」
<偏移> "-7:30"

雖然這些元素都是可選的,但 <偏移> 不能單獨出現。 必須附 <上日期> 或 <時間>。 若 <缺少日期> ,則預設值為當前日期。 若<>時間缺失,其預設值為凌晨12:00:00。 若<>日期存在,但其年份成分僅有兩位數,則根據該財產的價值Calendar.TwoDigitYearMax,在當前文化的曆法中轉換為年份。 若 <缺少 Offset> ,其預設值為當地時區的 offset。 <偏移> 可以代表協調世界時(UTC)的負或正偏移。 無論哪種情況, <偏移> 量都必須包含符號符號。

input字串是透過使用物件中格式資訊進行解析,該物件已DateTimeFormatInfo為當前文化初始化。 若要解析包含指定格式但不一定對應當前文化格式的字串,請使用此 ParseExact 方法並提供格式指定符。

另請參閱

適用於

Parse(ReadOnlySpan<Char>, IFormatProvider)

來源:
DateTimeOffset.cs
來源:
DateTimeOffset.cs
來源:
DateTimeOffset.cs
來源:
DateTimeOffset.cs
來源:
DateTimeOffset.cs

將字元範圍剖析為值。

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

參數

s
ReadOnlySpan<Char>

要解析的字元範圍。

provider
IFormatProvider

一個提供關於 s的文化特定格式資訊的物件。

傳回

解析 的結果 s

實作

適用於

Parse(String, IFormatProvider)

來源:
DateTimeOffset.cs
來源:
DateTimeOffset.cs
來源:
DateTimeOffset.cs
來源:
DateTimeOffset.cs
來源:
DateTimeOffset.cs

利用指定的文化特定格式資訊,將指定的日期與時間字串表示轉換為其 DateTimeOffset 對應的日期與時間。

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

參數

input
String

一個包含日期和時間的字串,需轉換。

formatProvider
IFormatProvider

一個提供文化特定格式資訊的 input物件。

傳回

一個等價於包含於 input中的日期與時間的物件,由 指定 formatProvider

實作

例外狀況

偏移時間大於14小時或少於 -14 小時。

inputnull

input 不包含有效的日期與時間字串表示。

-或-

input 包含一個不包含日期或時間的偏移值字串表示法。

範例

以下範例解析為 fr-fr 文化格式化的日期與時間字串,並使用當地系統預設的 en-us 文化來顯示。

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

備註

此方法解析一個包含三個元素的字串,這些元素可以任意順序出現,並以空白區隔。 這三個元素如下表所示。

元素 範例
<日期> "2/10/2007"
<時間> 「下午1:02:03」
<偏移> "-7:30"

雖然這些元素都是可選的,但 <偏移> 不能單獨出現。 必須附 <上日期> 或 <時間>。 若 <缺少日期> ,則預設值為當前日期。 若<>日期存在但其年份成分僅有兩位數,則根據屬性的價值,該日期會依據屬性的價值Calendar.TwoDigitYearMax轉換為參數當前日曆中的年份provider。 若<>時間缺失,其預設值為凌晨12:00:00。 若 <缺少 Offset> ,其預設值為當地時區的 offset。 <偏移> 可以代表協調世界時(UTC)的負或正偏移。 無論哪種情況, <偏移> 量都必須包含符號符號。

這三個元素的格式由參數 formatProvider 定義,參數可以是以下其中之一:

formatprovider為 ,nullCultureInfo則使用對應當前文化的物件。

偏移>量中使用<的正負號必須是 + 或 -。 它並非由PositiveSign參數物件formatProviderNumberFormatInfo OR NegativeSign 屬性所定義。

另請參閱

適用於

Parse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles)

來源:
DateTimeOffset.cs
來源:
DateTimeOffset.cs
來源:
DateTimeOffset.cs
來源:
DateTimeOffset.cs
來源:
DateTimeOffset.cs

利用指定的文化特有格式資訊與格式風格,將指定跨度的日期與時間表示轉換為其 DateTimeOffset 對應版本。

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

參數

input
ReadOnlySpan<Char>

一個包含代表日期和時間的字元的區間。

formatProvider
IFormatProvider

一個提供文化特定格式資訊的 input物件。

styles
DateTimeStyles

一個位元組合的列舉值,表示允許 input的格式。 典型的指定值為 None

傳回

一個等價於所包含input的日期與時間的物件,並由 和 styles指定formatProvider

適用於

Parse(String, IFormatProvider, DateTimeStyles)

來源:
DateTimeOffset.cs
來源:
DateTimeOffset.cs
來源:
DateTimeOffset.cs
來源:
DateTimeOffset.cs
來源:
DateTimeOffset.cs

利用指定的文化特有格式資訊與格式風格,將指定的日期與時間字串表示轉換為對 DateTimeOffset 應的日期與時間。

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

參數

input
String

一個包含日期和時間的字串,需轉換。

formatProvider
IFormatProvider

一個提供文化特定格式資訊的 input物件。

styles
DateTimeStyles

一個位元組合的列舉值,表示允許 input的格式。 典型的指定值為 None

傳回

一個等價於所包含input的日期與時間的物件,並由 和 styles指定formatProvider

例外狀況

偏移時間大於14小時或少於 -14 小時。

-或-

styles 不是一個有效的 DateTimeStyles 值。

-或-

styles 包含一個無支持 DateTimeStyles 的數值。

-或-

styles 包含 DateTimeStyles 無法同時使用的數值。

inputnull

input 不包含有效的日期與時間字串表示。

-或-

input 包含一個不包含日期或時間的偏移值字串表示法。

範例

以下範例說明將 、 DateTimeStyles.AssumeUniversal和 值傳遞DateTimeStyles.AssumeLocalstyles方法參數Parse(String, IFormatProvider, DateTimeStyles)DateTimeStyles.AdjustToUniversal效果。

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

備註

此方法解析一個包含三個元素的字串,這些元素可以任意順序出現,並以空白區隔。 這三個元素如下表所示。

元素 範例
<日期> "2/10/2007"
<時間> 「下午1:02:03」
<偏移> "-7:30"

雖然這些元素都是可選的,但 <偏移> 不能單獨出現。 必須附 <上日期> 或 <時間>。 若 <缺少日期> ,則預設值為當前日期。 若<>日期存在但其年份成分僅有兩位數,則根據屬性的價值,該日期會依據屬性的價值Calendar.TwoDigitYearMax轉換為參數當前日曆中的年份provider。 若<>時間缺失,其預設值為凌晨12:00:00。 若<缺少 Offset>,其預設值為當地時區的 offset,或TimeSpan.Zero參數DateTimeStyles.AssumeUniversalDateTimeStyles.AdjustToUniversal中指定styles或值。 若 <有偏移> 量,則可代表協調世界時(UTC)的負或正偏移。 無論哪種情況, <偏移> 量都必須包含符號符號。

這三個元素的格式由參數 formatProvider 定義,參數可以是以下其中之一:

每個元素也可以以前後的空白包圍,日期<>與<時間>元素也可以包含內側空白(例如 6: 00:00)。 只有 <偏移> 分量不能包含內部空白空間。

formatprovider為 ,nullCultureInfo則使用對應當前文化的物件。

偏移>量中使用<的正負號必須是 + 或 -。 它並非由PositiveSign參數回傳formatProvider的物件的 OR NegativeSign 屬性NumberFormatInfo所定義。

下表顯示支持的列舉成員 System.Globalization.DateTimeStyles

DateTimeStyles 成員 說明
AdjustToUniversal 解析由 表示 input 的字串,必要時將其轉換為 UTC。 它等同於解析字串後再呼叫 DateTimeOffset.ToUniversalTime 回傳 DateTimeOffset 物件的方法。
AllowInnerWhite 雖然有效,但會忽略此值。 日期與<時間>元素允許<>內部留白。
AllowLeadingWhite 雖然有效,但會忽略此值。 解析後的字串中每個元件前方允許有前置空白。
AllowTrailingWhite 雖然有效,但會忽略此值。 解析後的字串中每個元件前方允許有拖曳的空白。
AllowWhiteSpaces 此為預設行為。 無法透過提供更嚴格 DateTimeStyles 的列舉值(如 DateTimeStyles.None)來覆蓋此限制。
AssumeLocal 表示若 input 參數缺少 <偏移> 元素,應提供當地時區的偏移量。 這是該 Parse 方法的預設行為。
AssumeUniversal 表示若 input 參數缺少 <偏移> 元素,則應提供UTC偏移(00:00)。
None 雖然這個數值有效,但會被忽略,且沒有影響。
RoundtripKind 由於該 DateTimeOffset 結構不包含屬性 Kind ,此數值不具影響。

只有 DateTimeStyles.NoCurrentDateDefault 這個數值沒有被支援。 若參數中包含styles此值,則拋出 An ArgumentException 值。

另請參閱

適用於