DateTimeOffset.Parse 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
將日期和時間的指定字串表示,轉換為其相等的 DateTimeOffset。
多載
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 日之後,JapaneseCalendar 與 JapaneseLunisolarCalendar 中將開始使用「令和」。 此變更對使用這些日曆的所有應用程式都有影響。 如需詳細資訊,以及判斷您的應用程式是否受到影響,請參閱 在 .NET 的日曆中處理新紀元。 如需在 Windows 系統上測試應用程式以確保其整備時間變更的相關資訊,請參閱 準備您的應用程式以進行日文紀元變更。 如需 .NET 中支援多個紀元的行事曆功能,以及使用支援多個紀元的行事歷時的最佳做法,請參閱 使用紀元。
Parse(String)
將日期、時間和位移的指定字串表示,轉換為其相等的 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 小時。
input
為 null
。
範例
下列範例會 Parse(String) 呼叫 方法來剖析數個日期和時間字串。 此範例會在文化特性為 en-us 的系統上,包含 2007 年 3 月 22 日輸出。
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" |
<Time> | 「1:02:03 PM」 |
<Offset> | "-7:30" |
雖然每個元素都是選擇性的, < 但 Offset > 本身無法顯示。 它必須與日期 > 或 < 時間 > 一 < 起提供。 如果 < 遺漏 Date > ,則其預設值為目前日期。 如果 < 遺漏 Time > ,其預設值為上午 12:00:00。 如果 < Date > 存在,但其年份元件只包含兩位數,則會根據 屬性的值 Calendar.TwoDigitYearMax ,轉換成目前文化特性目前行事曆中的年份。 如果 < 遺漏 Offset > ,其預設值為當地時區的位移。 <位移 > 可以代表來自國際標準時間的負數或正位移, (UTC) 。 不論是哪一種情況, < Offset > 都必須包含符號符號。
字串是 input
使用物件中 DateTimeFormatInfo 針對目前文化特性初始化的格式資訊進行剖析。 若要剖析包含不一定對應至目前文化特性之格式設定的指定格式的字串,請使用 ParseExact 方法並提供格式規範。
另請參閱
適用於
Parse(ReadOnlySpan<Char>, IFormatProvider)
將字元範圍剖析為值。
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。
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 小時。
input
為 null
。
範例
下列範例會剖析針對 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" |
<Time> | 「1:02:03 PM」 |
<Offset> | "-7:30" |
雖然每個元素都是選擇性的, < 但 Offset > 本身無法顯示。 它必須與日期 > 或 < 時間 > 一 < 起提供。 如果 < 遺漏 Date > ,則其預設值為目前日期。 如果 < Date > 存在,但其年份元件只包含兩位數,則會根據 屬性的值 Calendar.TwoDigitYearMax ,將它轉換成參數目前行事曆中的年份 provider
。 如果 < 遺漏 Time > ,其預設值為上午 12:00:00。 如果 < 遺漏 Offset > ,其預設值為當地時區的位移。
<位移 > 可以代表來自國際標準時間的負數或正位移, (UTC) 。 不論是哪一種情況, < Offset > 都必須包含符號符號。
這三個元素的格式是由 formatProvider
參數所定義,可以是下列其中一項:
CultureInfo物件,表示其格式設定在 參數中使用的
input
文化特性。 屬性 DateTimeFormatInfo 所傳 CultureInfo.DateTimeFormat 回的物件會定義 中使用的input
格式設定。DateTimeFormatInfo物件,定義日期和時間資料的格式。
如果 formatprovider
為 null
,則會 CultureInfo 使用對應至目前文化特性的物件。
Offset > 中使用的 < 正負號必須是 + 或 -。 它不是由 參數物件的 formatProvider
或 NegativeSign 屬性 NumberFormatInfo 所 PositiveSign 定義。
另請參閱
適用於
Parse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles)
使用指定的特定文化特性格式資訊和格式樣式,將日期和時間的指定範圍表示轉換為其對等的 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
中包含的日期和時間相等,如 formatProvider
和 styles
所指定。
適用於
Parse(String, IFormatProvider, DateTimeStyles)
使用指定的特定文化特性格式資訊和格式樣式,將日期和時間的指定字串表示轉換為其相等的 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
中包含的日期和時間相等,如 formatProvider
和 styles
所指定。
例外狀況
位移大於 14 小時或小於 -14 小時。
-或-
styles
不是有效的 DateTimeStyles 值。
-或-
styles
包含不支援的 DateTimeStyles 值。
-或-
styles
包含無法搭配使用的 DateTimeStyles 值。
input
為 null
。
範例
下列範例說明將 、 DateTimeStyles.AssumeUniversal 和 值傳遞 DateTimeStyles.AssumeLocal 至 styles
方法參數 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" |
<Time> | 「1:02:03 PM」 |
<Offset> | "-7:30" |
雖然每個元素都是選擇性的, < 但 Offset > 本身無法顯示。 它必須與日期 > 或 < 時間 > 一 < 起提供。 如果 < 遺漏 Date > ,則其預設值為目前日期。 如果 < Date > 存在,但其年份元件只包含兩位數,則會根據 屬性的值 Calendar.TwoDigitYearMax ,將它轉換成參數目前行事曆中的年份 provider
。 如果 < 遺漏 Time > ,其預設值為上午 12:00:00。 如果 < 遺漏 Offset > ,則其預設值為當地時區的位移,或是 TimeSpan.Zero 參數 DateTimeStyles.AdjustToUniversal 中指定的 styles
或 DateTimeStyles.AssumeUniversal 值。 如果 < 位移 > 存在,它可以代表來自國際標準時間的負數或正位移, (UTC) 。 不論是哪一種情況, < Offset > 都必須包含符號符號。
這三個元素的格式是由 formatProvider
參數所定義,可以是下列其中一項:
CultureInfo物件,表示其格式設定在 參數中使用的
input
文化特性。 屬性 DateTimeFormatInfo 所傳 CultureInfo.DateTimeFormat 回的物件會定義 中使用的input
格式設定。DateTimeFormatInfo物件,定義日期和時間資料的格式。
每個元素也可以由開頭或尾端空白字元括住, < 而日期和時間 ><> 元素可以包含內部空白字元 (,例如 6:00:00) 。 <只有 Offset > 元件不能包含內部空白字元。
如果 formatprovider
為 null
,則會 CultureInfo 使用對應至目前文化特性的物件。
Offset > 中使用的 < 正負號必須是 + 或 -。 它不是由 PositiveSign 參數所傳回物件的 NumberFormatInfo 或 NegativeSign 屬性所 formatProvider
定義。
下表顯示支援的列舉成員 System.Globalization.DateTimeStyles 。
DateTimeStyles 成員 | 描述 |
---|---|
AdjustToUniversal | 剖析 所 input 表示的字串,並視需要將其轉換成 UTC。 它相當於剖析字串,然後呼叫 DateTimeOffset.ToUniversalTime 傳 DateTimeOffset 回物件的 方法。 |
AllowInnerWhite | 雖然有效,但會忽略此值。 日期和時間 ><> 元素中 < 允許內部空白字元。 |
AllowLeadingWhite | 雖然有效,但會忽略此值。 在剖析字串中的每個元件前面允許前置空白字元。 |
AllowTrailingWhite | 雖然有效,但會忽略此值。 在剖析字串中的每個元件前面允許尾端空白字元。 |
AllowWhiteSpaces | 此為預設行為。 無法藉由提供更嚴格的 DateTimeStyles 列舉值來覆寫它,例如 DateTimeStyles.None 。 |
AssumeLocal | 指出,如果 input 參數缺少 < Offset > 元素,則應該提供當地時區的位移。 這是 方法的預設行為 Parse 。 |
AssumeUniversal | 指出,如果 input 參數缺少 < Offset > 元素,則應該提供 UTC 位移 (00:00) 。 |
None | 雖然有效,但會忽略此值,而且沒有任何作用。 |
RoundtripKind |
DateTimeOffset因為 結構不包含 Kind 屬性,所以這個值沒有任何作用。 |
DateTimeStyles.NoCurrentDateDefault僅支援值。
ArgumentException如果參數中包含這個值, styles
則會擲回 。