字符串未被识别为有效的DateTime

时间:2013-04-09 06:03:11

标签: c# asp.net datetime

我的代码是:

 protected void Page_Load(object sender, EventArgs e)
    {
        string myDate = Request.QueryString["period"];
        if (!String.IsNullOrEmpty(myDate))
        {
            myDate = myDate.Replace("!", ":");
        }
        DateTime dt1 = Convert.ToDateTime(myDate);
        DateTime dt2 = DateTime.Now;
        TimeSpan variable = dt2 - dt1;
        if (variable.TotalMinutes > 5)
        {
            Response.Write("Download time is expired now");
        }
        else
        {
            Response.Redirect("Default.aspx", false);
        }



    }

我得到的错误如下:

  

字符串未被识别为有效的DateTime。

2 个答案:

答案 0 :(得分:2)

尝试使用DateTime.ParseExact()方法;

  

将指定的日期和时间字符串表示形式转换为它   DateTime等效使用指定的格式和特定​​于文化   格式信息。 字符串表示的格式必须匹配   完全符合指定的格式。

DateTime date = DateTime.ParseExact(myDate, "dd/MM/yyyy hh:mm:ss tt", CultureInfo.InvariantCulture);

这是DEMO

您可以从Custom Date and Time Format Strings

查看更多自定义日期格式

答案 1 :(得分:0)

使用DateTime.ParseExact

因为您的日期格式为09/04/2013 10:41:45 AM

DateTime dt1 = DateTime.ParseExact(myDate, "MM/dd/yyyy hh:mm:ss tt", 
                                           CultureInfo.InvariantCulture)

如果09为天,则将模式更改为dd/MM/yyyy hh:mm:ss tt

有关日期和时间格式字符串的更多信息,