C# 与.NET约会的最佳方式?

C# 与.NET约会的最佳方式?,c#,asp.net,parsing,date,C#,Asp.net,Parsing,Date,我从我的页面中得到一个字符串,我想确定它是一个日期。这就是我到目前为止所做的(它是有效的),我只是想知道这是否是最好的方法。我正在使用.NET4 int TheMonth =0; int TheDay = 0; int TheYear = 0; DateTime NewDate; var TheIncomingParam = Request.Params.Get("__EVENTARGUMENT").ToString(); char[] TheBreak = { '/' }; string[

我从我的页面中得到一个字符串,我想确定它是一个日期。这就是我到目前为止所做的(它是有效的),我只是想知道这是否是最好的方法。我正在使用.NET4

int TheMonth =0;
int TheDay = 0;
int TheYear = 0;
DateTime NewDate;

var TheIncomingParam = Request.Params.Get("__EVENTARGUMENT").ToString();

char[] TheBreak = { '/' };
string[] TheOutput = TheIncomingParam.Split(TheBreak);

try { TheMonth = Convert.ToInt32(TheOutput[0]); }
catch { }

try { TheDay = Convert.ToInt32(TheOutput[1]); }
catch { }

try { TheYear = Convert.ToInt32(TheOutput[2]); }
catch { }

if (TheMonth!=0 && TheDay!=0 && TheYear!=0)
{
        try { NewDate = new DateTime(TheYear, TheMonth, TheDay); }
        catch { var NoDate = true; }
}

使用
DateTime
结构上定义的
Parse
方法之一

如果字符串不可解析,这些方法将引发异常,因此您可能希望改用其中一种方法(不太漂亮-它们需要out参数,但更安全):

如果您知道传入日期的确切格式,您可以尝试使用
ParseExact
TryParseExact
,在尝试解析日期字符串时使用日期和时间格式字符串(或)。

和如何


第一个使用当前的文化日期格式。

.NET为我们提供了一个
datetime.parse

和一个
datetime.tryparse


这两种方法都是从字符串中解析日期的好方法

我只需要对输入字符串进行三次方括号:

    private bool ParseDateString()
    {
        var theIncomingParam = Request.Params.Get("__EVENTARGUMENT").ToString(); 

        DateTime myDate;

        if (DateTime.TryParse(theIncomingParam, CultureInfo.InvariantCulture, DateTimeStyles.None, out myDate))
        {
            int TheMonth = myDate.Month;
            int TheDay = myDate.Day;
            int TheYear = myDate.Year;

            // TODO: further processing of the values just read

            return true;
        }
        else
        {
            return false;
        }
    }

有一个好的搭讪路线。你用的是什么版本的asp.net?先约她出去。1:要有吸引力。2:不要表现得不吸引人。3:有钱。@T.E.D.或者,也许不是,哈哈。他可能会因为这个头衔而得到更多的关注;-)啊!!它已经内置到框架中了!谢谢顺便说一句,我让我的页面工作:我让它与_udopostback一起工作,而不是用页面方法发送参数。@frenchie-很高兴听到你对它进行了排序。。。BCL有很多这样的好东西。花些时间阅读MSDN上的文档,你永远不知道你会发现什么。是的,有很多内置的东西可以帮助你,但前提是你知道它首先存在。前几天我发现了扩展方法,这些方法太棒了!!
    private bool ParseDateString()
    {
        var theIncomingParam = Request.Params.Get("__EVENTARGUMENT").ToString(); 

        DateTime myDate;

        if (DateTime.TryParse(theIncomingParam, CultureInfo.InvariantCulture, DateTimeStyles.None, out myDate))
        {
            int TheMonth = myDate.Month;
            int TheDay = myDate.Day;
            int TheYear = myDate.Year;

            // TODO: further processing of the values just read

            return true;
        }
        else
        {
            return false;
        }
    }