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)
- Source:
- DateTimeOffset.cs
- Source:
- DateTimeOffset.cs
- Source:
- 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 小时。
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) 分析包含三个元素的字符串,这些元素可以按任意顺序显示,并由空格分隔。 这三个元素如下表所示。
元素 | 示例 |
---|---|
<Date> | "2/10/2007" |
<时间> | “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)
- Source:
- DateTimeOffset.cs
- Source:
- DateTimeOffset.cs
- Source:
- 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)
- Source:
- DateTimeOffset.cs
- Source:
- DateTimeOffset.cs
- Source:
- 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 小时。
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
注解
此方法分析包含三个元素的字符串,这些元素可以按任意顺序显示,并由空格分隔。 下表显示了这三个元素。
元素 | 示例 |
---|---|
<Date> | "2/10/2007" |
<时间> | “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> 中使用的<正号或负号必须为 + 或 -。 它不是由 PositiveSign 参数的 NumberFormatInfo 对象的 formatProvider
或 NegativeSign 属性定义的。
另请参阅
适用于
Parse(ReadOnlySpan<Char>, IFormatProvider, DateTimeStyles)
- Source:
- DateTimeOffset.cs
- Source:
- DateTimeOffset.cs
- Source:
- 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
中包含的日期和时间,由 formatProvider
和 styles
指定。
适用于
Parse(String, IFormatProvider, DateTimeStyles)
- Source:
- DateTimeOffset.cs
- Source:
- DateTimeOffset.cs
- Source:
- 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
中包含的日期和时间,由 formatProvider
和 styles
指定。
例外
偏移量大于 14 小时或小于 -14 小时。
- 或 -
styles
不是有效的 DateTimeStyles 值。
- 或 -
styles
包含不支持的 DateTimeStyles 值。
- 或 -
styles
包含不能一起使用的 DateTimeStyles 值。
input
为 null
。
示例
以下示例演示了将 、 和 值传递给 DateTimeStyles.AssumeLocalstyles
方法的 Parse(String, IFormatProvider, DateTimeStyles) 参数的效果。DateTimeStyles.AdjustToUniversalDateTimeStyles.AssumeUniversal
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
注解
此方法分析包含三个元素的字符串,这些元素可以按任意顺序显示,并由空格分隔。 下表显示了这三个元素。
元素 | 示例 |
---|---|
<Date> | "2/10/2007" |
<时间> | “1:02:03 PM” |
<Offset> | "-7:30" |
尽管其中每个元素都是可选的,但 <Offset> 不能单独显示。 它必须与 Date> 或 <Time> 一起<提供。 如果 <缺少 Date> ,则其默认值为当前日期。 如果 <Date> 存在,但其年份组件仅包含两位数字,则根据 属性的值Calendar.TwoDigitYearMax将其转换为参数当前日历中的provider
年份。 如果 <缺少 Time> ,其默认值为上午 12:00:00。 如果<缺少 Offset>,则其默认值为本地时区的偏移量,或者在 TimeSpan.ZeroDateTimeStyles.AdjustToUniversal 参数中styles
指定 了 或 DateTimeStyles.AssumeUniversal 值。 如果 <存在 Offset> ,它可以表示协调世界时 (UTC) 的负偏移量或正偏移量。 在任一情况下, <Offset> 都必须包含符号。
这三个元素的格式由 formatProvider
参数定义,可以是以下任一项:
一个 CultureInfo 对象,该对象表示在 参数中使用
input
其格式的区域性。 属性 DateTimeFormatInfo 返回 CultureInfo.DateTimeFormat 的 对象定义 中使用的input
格式。一个 DateTimeFormatInfo 定义日期和时间数据格式的 对象。
每个元素还可以用前导空格或尾随空格括起来,日期和时间<><>元素可以包含内部空格 (,例如 6:00:00) 。 <只有 Offset> 组件不能包含内部空格。
如果 formatprovider
为 null
,则 CultureInfo 使用与当前区域性对应的 对象。
Offset> 中使用的<正号或负号必须为 + 或 -。 它不是由 PositiveSign 参数返回formatProvider
的 NumberFormatInfo 对象的 或 NegativeSign 属性定义的。
下表显示了支持的 枚举的成员 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
此值,则会引发 。