我有一个 SQL Server 数据库,其中有一列日期为2001-12-23
. insert 语句使用以下代码确保输入的格式正确:
var start_date_formatted = DateTime.ParseExact(start_date.Text, "dd-MM-yyyy", null);
即使输入被格式化,因为dd-MM-yyyy
它仍然在数据库中显示为2001-12-23
.
我不明白的事实是,每当我从数据库中查询数据时,它都会返回格式正确的日期,dd-MM-yyyy
即使它在数据库中显示为yyyy-MM-dd
.
这没什么大不了的,因为我最终得到了我需要的格式。
问题是时间字符串被添加到我的日期生成的输出23-12-2001 00:00:00
。我只需要日期,但无法弄清楚为什么要添加它以及为什么不能使用以下方法更改它:
DateTime.ParseExact(startdate, "dd-MM-YYYY", null); // string is not recognized as valid DateTime
或者
.ToString("dd-MM-YYYY"); // no overload method ToString that takes 1 argument
由于我是 asp.net 的新手,我想了解如何处理日期格式以及是否有任何一般配置设置需要并设置某些日期格式?
更新
var dt = BookingAccess.ManageBookingsDataTable();
string id = string.Empty;
string name = string.Empty;
string startdate = string.Empty;
string enddate = string.Empty;
string full_string = string.Empty;
if (dt.Rows.Count > 0)
{
for (int i = 0; i < dt.Rows.Count; i++)
{
id = dt.Rows[i]["id"].ToString();
var sdate = dt.Rows[i]["start_date"];
name = dt.Rows[i]["Pet name"].ToString();
startdate = dt.Rows[i]["start_date"].ToString("dd-MM-yyyy"); // error is thrown here
enddate = dt.Rows[i]["end_date"].ToString();
full_string = startdate + " to " + enddate + " (" + name + ")";
CurrentBookings.Items.Add(new ListItem(full_string, id));
}
}
这似乎也没有格式化日期:
startdate = string.Format("{0:dd/MM/yyyy}", dt.Rows[i]["start_date"].ToString());