在asp.net中更改日期格式

时间:2015-08-19 08:35:21

标签: c# asp.net date datetime datepicker

我有一个存储活动日期的表。我在几个标签中显示日期。一切正常。但我想以“dd-mm-yyyy' dd-mm-yyyy'并且日期存储在sql server中作为' mm / dd / yyyy'。

 Create table testDate
 (
 EventStart date
 EventEnd date
 )

日期来自datepicker,我不想在datepicker中格式化我的日期,因为它给了我转换问题。我想在asp.net Label中显示日期时更改格式。 现在我将日期重新设置如下:

 string CS = ConfigurationManager.ConnectionStrings["SportsActiveConnectionString"].ConnectionString;
    using (SqlConnection con = new SqlConnection(CS))
    {
        con.Open();
        SqlCommand cmd = new SqlCommand("Select * from testdate", con);
        SqlDataReader rdr = cmd.ExecuteReader();
        while (rdr.Read())
        {
            DateTime Received;
            DateTime.TryParse(rdr["EventStart"].ToString(),CultureInfo.InvariantCulture,DateTimeStyles.None, out Received);
            Label1.Text = Received.ToShortDateString();
        }
    }
}

提前致谢。

1 个答案:

答案 0 :(得分:4)

无论如何你都不需要解析它。 SQL Server以二进制格式保存DateTime。它没有任何格式。当您获得文本表示时,格式概念只是一个问题。

只需将其转换为DateTimedate与CLR方面的DateTime映射)并使用custom date and time format specifiers获取其格式的字符串表示形式你想要的。

Label1.Text = ((DateTime)rdr["EventStart"]).ToString("dd-MM-yyyy");

顺便说一句,我强烈怀疑你需要使用月而不是分钟。这就是您需要将mm部分更改为MM的原因。 mm说明符用于分钟,MM说明符用于几个月。

使用using语句处理您的SqlCommandSqlDataReader对象,就像您建立连接一样。

顺便说一下,不要使用select *It is kind of bad practice