我无法将字符串转换为日期,我的字符串就像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。
请帮助我,它杀了我一天的时间,并提前感谢。
答案 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 强>