Condividi tramite


DateTime.TryParse Method (String, DateTime%)

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

Converts the specified string representation of a date and time to its DateTime equivalent and returns a value that indicates whether the conversion succeeded.

Namespace:  System
Assembly:  mscorlib (in mscorlib.dll)

Syntax

'Declaration
Public Shared Function TryParse ( _
    s As String, _
    <OutAttribute> ByRef result As DateTime _
) As Boolean
public static bool TryParse(
    string s,
    out DateTime result
)

Parameters

  • s
    Type: System.String
    A string that contains a date and time to convert.
  • result
    Type: System.DateTime%
    When this method returns, contains the DateTime value that is equivalent to the date and time contained in s, if the conversion succeeded, or DateTime.MinValue if the conversion failed. The conversion fails if the s parameter is nulla null reference (Nothing in Visual Basic), is an empty string, or does not contain a valid string representation of a date and time. This parameter is passed uninitialized.

Return Value

Type: System.Boolean
true if the s parameter was converted successfully; otherwise, false.

Remarks

The TryParse method is similar to the Parse method, except that the TryParse method does not throw an exception if the conversion fails.

The string s is parsed using formatting information in the DateTimeFormatInfo object that is supplied by the current culture. The s parameter must contain the representation of a date and time in one of the formats recognized by the DateTimeFormatInfo object of the current culture.

This method tries to ignore unrecognized data, if possible, and fills in missing month, day, and year information with the current date. If s contains only a date and no time, this method assumes the time is 12:00 midnight. If s includes a date component with a two-digit year, it is converted to a year in the current culture's current calendar based on the value of the Calendar.TwoDigitYearMax property. Any leading, inner, or trailing white space character in s is ignored.

Because the DateTime.TryParse(String, DateTime%) method tries to parse the string representation of a date and time using the formatting rules of the current culture, trying to parse a particular string across different cultures can either fail or return different results. If a specific date and time format will be parsed across different locales, use the DateTime.TryParse(String, IFormatProvider, DateTimeStyles, DateTime%) method or one of the overloads of the TryParseExact method and provide a format specifier.

If s contains no time zone information, result contains a DateTime value whose Kind property is DateTimeKind.Unspecified when the method returns. If the string to be parsed contains time zone information, result contains a DateTime value whose Kind property is DateTimeKind.Local when the method returns.

Examples

The following example passes a number of date and time strings to the DateTime.TryParse(String, DateTime%) method.

Dim dateStrings() As String = {"05/01/2009 14:57:32.8", "2009-05-01 14:57:32.8", _
                               "2009-05-01T14:57:32.8375298-04:00", _
                               "5/01/2008 14:57:32.80 -07:00", _
                               "1 May 2008 2:57:32.8 PM", "16-05-2009 1:00:32 PM", _
                               "Fri, 15 May 2009 20:10:57 GMT"}
Dim dateValue As Date

outputBlock.Text &= String.Format("Attempting to parse strings using {0} culture.", _
                  CultureInfo.CurrentCulture.Name) & vbCrLf
For Each dateString As String In dateStrings
   If Date.TryParse(dateString, dateValue) Then
      outputBlock.Text &= String.Format("  Converted '{0}' to {1} ({2}).", dateString, _
                        dateValue, dateValue.Kind) & vbCrLf
   Else
      outputBlock.Text &= String.Format("  Unable to parse '{0}'.", dateString) & vbCrLf
   End If
Next
' The example displays the following output:
'    Attempting to parse strings using en-US culture.
'       Converted '05/01/2009 14:57:32.8' to 5/1/2009 2:57:32 PM (Unspecified).
'       Converted '2009-05-01 14:57:32.8' to 5/1/2009 2:57:32 PM (Unspecified).
'       Converted '2009-05-01T14:57:32.8375298-04:00' to 5/1/2009 11:57:32 AM (Local).
'       Converted '5/01/2008 14:57:32.80 -07:00' to 5/1/2008 2:57:32 PM (Local).
'       Converted '1 May 2008 2:57:32.8 PM' to 5/1/2008 2:57:32 PM (Unspecified).
'       Unable to parse '16-05-2009 1:00:32 PM'.
'       Converted 'Fri, 15 May 2009 20:10:57 GMT' to 5/15/2009 1:10:57 PM (Local).
string[] dateStrings = {"05/01/2009 14:57:32.8", "2009-05-01 14:57:32.8", 
                        "2009-05-01T14:57:32.8375298-04:00", 
                        "5/01/2008 14:57:32.80 -07:00", 
                        "1 May 2008 2:57:32.8 PM", "16-05-2009 1:00:32 PM", 
                        "Fri, 15 May 2009 20:10:57 GMT" };
DateTime dateValue;

outputBlock.Text += String.Format("Attempting to parse strings using {0} culture.",
                  CultureInfo.CurrentCulture.Name) + "\n";
foreach (string dateString in dateStrings)
{
   if (DateTime.TryParse(dateString, out dateValue))
      outputBlock.Text += String.Format("  Converted '{0}' to {1} ({2}).", dateString,
                        dateValue, dateValue.Kind) + "\n";
   else
      outputBlock.Text += String.Format("  Unable to parse '{0}'.", dateString) + "\n";
}
// The example displays the following output:
//    Attempting to parse strings using en-US culture.
//       Converted '05/01/2009 14:57:32.8' to 5/1/2009 2:57:32 PM (Unspecified).
//       Converted '2009-05-01 14:57:32.8' to 5/1/2009 2:57:32 PM (Unspecified).
//       Converted '2009-05-01T14:57:32.8375298-04:00' to 5/1/2009 11:57:32 AM (Local).
//       Converted '5/01/2008 14:57:32.80 -07:00' to 5/1/2008 2:57:32 PM (Local).
//       Converted '1 May 2008 2:57:32.8 PM' to 5/1/2008 2:57:32 PM (Unspecified).
//       Unable to parse '16-05-2009 1:00:32 PM'.
//       Converted 'Fri, 15 May 2009 20:10:57 GMT' to 5/15/2009 1:10:57 PM (Local).

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.