XElement Explicit Conversion (XElement to DateTime)

Microsoft Silverlight will reach end of support after October 2021. Learn more.

Cast the value of this XElement to a DateTime.

This API is not CLS-compliant. 

Namespace:  System.Xml.Linq
Assembly:  System.Xml.Linq (in System.Xml.Linq.dll)

Syntax

'Declaration
Public Shared Narrowing Operator CType ( _
    element As XElement _
) As DateTime
public static explicit operator DateTime (
    XElement element
)

Parameters

Return Value

Type: System.DateTime
A DateTime that contains the content of this XElement.

Exceptions

Exception Condition
FormatException

The element does not contain a valid DateTime value.

ArgumentNullException

The element parameter is nulla null reference (Nothing in Visual Basic).

Remarks

The value space of an attribute or element that contains date and time content is closely related to the dates and times described in ISO 8601. When creating an attribute or element that contains date and time content, the attribute or element values are formatted per the W3C specification. For more information, see the NOTE-datetime W3C specification.

Behavior is lax when casting to a DateTime from an attribute or element. Even if the attribute or element value is not formatted exactly per the W3C specification, the value is appropriately converted to a DateTime.

This conversion operator uses CultureInfo.InvariantCulture to convert from a DateTime.

Examples

The following example creates an element with date and time content. It then casts it to DateTime to retrieve the value.

Dim output As New StringBuilder
' Behavior is strict when formatting an XML element or attribute from a DateTime,
' but behavior is lax when casting to a DateTime from an element or attribute.
Dim root As XElement = <Root><%= New DateTime(2006, 10, 6, 12, 30, 0) %></Root>
output.Append(root)
output.Append(Environment.NewLine)

' Cast from a strictly formatted XML element.
Dim dt As DateTime = CType(root, DateTime)
output.Append(String.Format("dt={0}", dt))
output.Append(Environment.NewLine)
output.Append("-----")
output.Append(Environment.NewLine)

' If root is formatted in some different way:
Dim dtElement As XElement = <OrderDate>October 6, 2006</OrderDate>
output.Append(dtElement)
output.Append(Environment.NewLine)
Dim orderDate As DateTime = CType(dtElement, DateTime)
output.Append(String.Format("orderDate={0:d}", orderDate))
output.Append(Environment.NewLine)


OutputTextBlock.Text = output.ToString()
StringBuilder output = new StringBuilder();
// Behavior is strict when formatting an XML element or attribute from a DateTime,
// but behavior is lax when casting to a DateTime from an element or attribute.
XElement root = new XElement("Root", new DateTime(2006, 10, 6, 12, 30, 0));
output.Append(root + Environment.NewLine);

// Cast from a strictly formatted XML element.
DateTime dt = (DateTime)root;
output.Append("dt=" + dt + Environment.NewLine);
output.Append("-----" + Environment.NewLine);

// If root is formatted in some different way:
XElement dtElement = new XElement("OrderDate", "October 6, 2006");
output.Append(dtElement + Environment.NewLine);
DateTime orderDate = (DateTime)dtElement;
output.Append("orderDate=" + orderDate + Environment.NewLine);

OutputTextBlock.Text = output.ToString();

Version Information

Silverlight

Supported in: 5, 4, 3

Silverlight for Windows Phone

Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0

XNA Framework

Supported in: Xbox 360, Windows Phone OS 7.0

Platforms

For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.