DateTimeOffset::Parse Method (String^, IFormatProvider^, DateTimeStyles)
Converts the specified string representation of a date and time to its DateTimeOffset equivalent using the specified culture-specific format information and formatting style.
Assembly: mscorlib (in mscorlib.dll)
public: static DateTimeOffset Parse( String^ input, IFormatProvider^ formatProvider, DateTimeStyles styles )
Parameters
- input
-
Type:
System::String^
A string that contains a date and time to convert.
- formatProvider
-
Type:
System::IFormatProvider^
An object that provides culture-specific format information about input.
- styles
-
Type:
System.Globalization::DateTimeStyles
A bitwise combination of enumeration values that indicates the permitted format of input. A typical value to specify is None.
Return Value
Type: System::DateTimeOffsetAn object that is equivalent to the date and time that is contained in input as specified by formatProvider and styles.
| Exception | Condition |
|---|---|
| ArgumentException | The offset is greater than 14 hours or less than -14 hours. -or- styles is not a valid DateTimeStyles value. -or- styles includes an unsupported DateTimeStyles value. -or- styles includes DateTimeStyles values that cannot be used together. |
| ArgumentNullException | input is null. |
| FormatException | input does not contain a valid string representation of a date and time. -or- input contains the string representation of an offset value without a date or time. |
This method parses a string with three elements that can appear in any order and are delimited by white space. These three elements are shown in the following table.
Element | Example |
|---|---|
<Date> | "2/10/2007" |
<Time> | "1:02:03 PM" |
<Offset> | "-7:30" |
Although each of these elements is optional, <Offset> cannot appear by itself. It must be provided together with either <Date> or <Time>. If <Date> is missing, its default value is the current day. If <Date> is present but its year component consists of only two digits, it is converted to a year in the provider parameter's current calendar based on the value of the Calendar::TwoDigitYearMax property. If <Time> is missing, its default value is 12:00:00 AM. If <Offset> is missing, its default value is the offset of the local time zone, or TimeSpan::Zero if either the DateTimeStyles::AdjustToUniversal or DateTimeStyles::AssumeUniversal value is specified in the styles parameter. If <Offset> is present, it can represent either a negative or a positive offset from Coordinated Universal Time (UTC). In either case, <Offset> must include a sign symbol.
The format of these three elements is defined by the formatProvider parameter, which can be either of the following:
A CultureInfo object that represents the culture whose formatting is used in the input parameter. The DateTimeFormatInfo object returned by the CultureInfo::DateTimeFormat property defines the formatting used in input.
A DateTimeFormatInfo object that defines the format of date and time data.
Each element can also be enclosed by leading or trailing white space, and the <Date> and <Time> elements can include inner white space (such as 6: 00:00). Only the <Offset> component cannot include inner white space.
If formatprovider is null, the CultureInfo object that corresponds to the current culture is used.
The positive or negative sign used in <Offset> must be either + or -. It is not defined by the PositiveSign or NegativeSign properties of the NumberFormatInfo object returned by the formatProvider parameter.
The following table shows the members of the System.Globalization::DateTimeStyles enumeration that are supported.
DateTimeStyles member | Description |
|---|---|
Parses the string represented by input and, if necessary, converts it to UTC. It is equivalent to parsing a string and then calling the DateTimeOffset::ToUniversalTime method of the returned DateTimeOffset object. | |
Although valid, this value is ignored. Inner white space is permitted in the <Date> and <Time> elements. | |
Although valid, this value is ignored. Leading white space is permitted in front of each component in the parsed string. | |
Although valid, this value is ignored. Trailing white space is permitted in front of each component in the parsed string. | |
This is the default behavior. It cannot be overridden by supplying a more restrictive DateTimeStyles enumeration value, such as DateTimeStyles::None. | |
Indicates that, if the input parameter lacks an <Offset> element, the offset of the local time zone should be provided. This is the default behavior of the Parse method. | |
Indicates that, if the input parameter lacks an <Offset> element, the UTC offset (00:00) should be provided. | |
Although valid, this value is ignored and has no effect. | |
Because the DateTimeOffset structure does not include a Kind property, this value has no effect. |
Only the DateTimeStyles::NoCurrentDateDefault value is not supported. An ArgumentException is thrown if this value is included in the styles parameter.
The following example illustrates the effect of passing the DateTimeStyles::AssumeLocal, DateTimeStyles::AssumeUniversal, and DateTimeStyles::AdjustToUniversal values to the styles parameter of the Parse(String^, IFormatProvider^, DateTimeStyles) method.
Available since 8
.NET Framework
Available since 2.0
Portable Class Library
Supported in: portable .NET platforms
Silverlight
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1