无法正确地在asp.net中将字符串转换为日期

时间:2012-12-17 12:06:19

标签: c# asp.net

我无法将字符串转换为日期,我的字符串就像17/12/2012 为此编写的代码如下所示

public string Date_Convert(string dt1)
{
    string strdate = string.Empty;
    Thread.CurrentThread.CurrentCulture = new CultureInfo("en-GB");
    DateTime dt = Convert.ToDateTime(dt1);
    strdate = dt.Month.ToString() + "/" + dt.Day.ToString() + "/" + dt.Year.ToString();
    Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
    return strdate;
}

它在我的本地系统中运行良好。当然我没有在我的服务器(位于澳大利亚)工作,我在上面的代码中尝试了不同的文化设置,

我在sql查询中使用这个日期字符串where where。

请帮助我,它杀了我一天的时间,并提前感谢。

3 个答案:

答案 0 :(得分:2)

为什么不做这样的事情,而不是改变文化:

public string Date_Convert(string dt1)
{
    DateTime dt = DateTime.ParseExact(dt1, "dd/MM/yyyy", new CultureInfo("en-GB"));
    return dt.ToString("d", new CultureInfo("en-US"));
}

另外:如果您在SQL查询中使用该值(并且假设您的查询适用于DATETIME字段,而不是NVARCHAR),那么您还应该考虑使用参数化查询来传递{ {1}}数据库的值,以避免SQL注入。

例如:

DateTime

答案 1 :(得分:1)

尝试DateTime.ParseExact()作为参数接收模式,因此对于您的情况,它将是“dd / MM / yyyy”

答案 2 :(得分:0)

DataTime的格式取决于应用程序的当前文化。为了在您的应用程序中具有特定格式,您可以在部分下的web.config文件中设置标记。在这种情况下,您无需编写代码将数据时间转换为正确的格式。默认情况下,所有日期都将设置为指定的格式。

http://forums.asp.net/t/1109183.aspx/1

<强> More Info