DateTimeOffset.Parse 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
將指定的字串表示日期與時間轉換為其 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 日在 JapaneseCalendar 和 JapaneseLunisolarCalendar中標示了 Reiwa 時代的開頭。 這種時代變更會影響使用這些行事曆的所有應用程式。 如需詳細資訊,以及判斷您的應用程式是否受到影響,請參閱 處理 .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) 解析多個日期與時間字串的方法。 範例包含 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)
將字元範圍剖析為值。
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" |
| <時間> | 「下午1:02:03」 |
| <偏移> | "-7:30" |
雖然這些元素都是可選的,但 <偏移> 不能單獨出現。 必須附 <上日期> 或 <時間>。 若 <缺少日期> ,則預設值為當前日期。 若<>日期存在但其年份成分僅有兩位數,則根據屬性的價值,該日期會依據屬性的價值Calendar.TwoDigitYearMax轉換為參數當前日曆中的年份provider。 若<>時間缺失,其預設值為凌晨12:00:00。 若 <缺少 Offset> ,其預設值為當地時區的 offset。
<偏移> 可以代表協調世界時(UTC)的負或正偏移。 無論哪種情況, <偏移> 量都必須包含符號符號。
這三個元素的格式由參數 formatProvider 定義,參數可以是以下其中之一:
CultureInfo物件,表示在 參數中使用
input其格式的文化特性。 DateTimeFormatInfo 屬性所傳回的 CultureInfo.DateTimeFormat 物件定義了input中使用的格式設定。一個 DateTimeFormatInfo 定義日期與時間資料格式的物件。
若formatprovider為 ,nullCultureInfo則使用對應當前文化的物件。
偏移>量中使用<的正負號必須是 + 或 -。 它並非由PositiveSign參數物件formatProvider的 NumberFormatInfo OR NegativeSign 屬性所定義。
另請參閱
適用於
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的日期與時間的物件,並由 和 styles指定formatProvider。
適用於
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的日期與時間的物件,並由 和 styles指定formatProvider。
例外狀況
偏移時間大於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" |
| <時間> | 「下午1:02:03」 |
| <偏移> | "-7:30" |
雖然這些元素都是可選的,但 <偏移> 不能單獨出現。 必須附 <上日期> 或 <時間>。 若 <缺少日期> ,則預設值為當前日期。 若<>日期存在但其年份成分僅有兩位數,則根據屬性的價值,該日期會依據屬性的價值Calendar.TwoDigitYearMax轉換為參數當前日曆中的年份provider。 若<>時間缺失,其預設值為凌晨12:00:00。 若<缺少 Offset>,其預設值為當地時區的 offset,或TimeSpan.Zero參數DateTimeStyles.AssumeUniversalDateTimeStyles.AdjustToUniversal中指定styles或值。 若 <有偏移> 量,則可代表協調世界時(UTC)的負或正偏移。 無論哪種情況, <偏移> 量都必須包含符號符號。
這三個元素的格式由參數 formatProvider 定義,參數可以是以下其中之一:
CultureInfo物件,表示在 參數中使用
input其格式的文化特性。 DateTimeFormatInfo 屬性所傳回的 CultureInfo.DateTimeFormat 物件定義了input中使用的格式設定。一個 DateTimeFormatInfo 定義日期與時間資料格式的物件。
每個元素也可以以前後的空白包圍,日期<>與<時間>元素也可以包含內側空白(例如 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 值。