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) 该方法来分析多个日期和时间字符串。 该示例包括 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" |
<Time> | “1:02:03 PM” |
<Offset> | "-7:30" |
虽然其中每个元素都是可选的, <Offset> 但不能单独显示。 它必须与任一或两<Time>者<Date>一起提供。 如果 <Date> 缺少,则其默认值为当前日期。 如果 <Time> 缺少,则其默认值为上午 12:00:00。 如果 <Date> 存在,但其年份组件仅包含两位数字,则根据属性的值 Calendar.TwoDigitYearMax 将其转换为当前区域性当前日历中的一年。 如果 <Offset> 缺少,则其默认值为本地时区的偏移量。 <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
的结果。
实现
适用于
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
注解
此方法分析一个字符串,其中包含三个元素,这些元素可以按任意顺序显示,并由空格分隔。 下表显示了这三个元素。
元素 | 示例 |
---|---|
<Date> | "2/10/2007" |
<Time> | “1:02:03 PM” |
<Offset> | "-7:30" |
虽然其中每个元素都是可选的,但 <Offset> 不能单独显示。 它必须与任一<Date><Time>或一起提供。 如果 <Date> 缺少,则其默认值为当前日期。 如果<Date>存在,但其年份组件仅包含两位数字,则根据属性的值Calendar.TwoDigitYearMax将其转换为参数当前日历中的provider
一年。 如果 <Time> 缺少,其默认值为上午 12:00:00。 如果 <Offset> 缺少,则其默认值为本地时区的偏移量。 <Offset> 可以表示与协调世界时 (UTC) 的负偏移量或正偏移量。 在任一情况下, <Offset> 都必须包含符号符号。
这三个元素的格式由 formatProvider
参数定义,可以是以下任一元素:
一个 CultureInfo 对象,表示其格式在参数中使用的
input
区域性。 DateTimeFormatInfo属性返回CultureInfo.DateTimeFormat的对象定义用于input
的格式 。定义 DateTimeFormatInfo 日期和时间数据格式的对象。
null
如果是formatprovider
,CultureInfo则使用对应于当前区域性的对象。
使用的 <Offset> 正号或负号必须是 + 或 -。 它不是由PositiveSign参数对象的formatProvider
或NegativeSign属性NumberFormatInfo定义的。
另请参阅
适用于
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.AssumeUniversalDateTimeStyles.AdjustToUniversal值传递给styles
DateTimeStyles.AssumeLocal方法参数Parse(String, IFormatProvider, DateTimeStyles)的效果。
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" |
<Time> | “下午 1:02:03” |
<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 日期和时间数据格式的对象。
每个元素也可以由前导空格或尾随空格括起来,并且 <Date> 元素 <Time> 可以包含内部空白 (,例如 6:00:00) 。 <Offset>只有组件不能包含内部空白。
null
如果是formatprovider
,CultureInfo则使用对应于当前区域性的对象。
使用的 <Offset> 正号或负号必须是 + 或 -。 它不是由PositiveSign参数返回formatProvider
的对象或NegativeSign属性NumberFormatInfo定义的。
下表显示了支持的枚举成员 System.Globalization.DateTimeStyles 。
DateTimeStyles 成员 | 说明 |
---|---|
AdjustToUniversal | 分析由 input 该字符串表示的字符串,如有必要,将其转换为 UTC。 它等效于分析字符串,然后调用 DateTimeOffset.ToUniversalTime 返回 DateTimeOffset 的对象的方法。 |
AllowInnerWhite | 虽然有效,但忽略此值。 允许在 <Date> 元素中使用 <Time> 内部空格。 |
AllowLeadingWhite | 虽然有效,但忽略此值。 允许在分析字符串中的每个组件前面使用前导空格。 |
AllowTrailingWhite | 虽然有效,但忽略此值。 允许在分析字符串中的每个组件前面使用尾随空格。 |
AllowWhiteSpaces | 此选项为默认行为。 无法通过提供更严格的 DateTimeStyles 枚举值(例如 DateTimeStyles.None)来重写它。 |
AssumeLocal | 指示,如果 input 参数缺少 <Offset> 元素,则应提供本地时区的偏移量。 这是该方法的默认行为 Parse 。 |
AssumeUniversal | 指示,如果 input 参数缺少 <Offset> 元素,则应提供 UTC 偏移量 (00:00) 。 |
None | 虽然有效,但此值将被忽略,并且不起作用。 |
RoundtripKind | DateTimeOffset由于结构不包含属性Kind ,因此此值不起作用。 |
DateTimeStyles.NoCurrentDateDefault仅支持该值。 如果在参数中包含styles
此值,则会引发一个ArgumentException值。