我在sql
表中有yyyy-mm-dd
格式的日期值,但是对于单个数字的日期和月份格式,
1989-1-3
如何在1989-01-03
的{{1}}中显示。
答案 0 :(得分:2)
您可以使用.ToString()
函数在yyyy-MM-dd
中转换DateTime
DateTime date = new DateTime(1989,01,03);
string strDate = date.ToString("yyyy-MM-dd");
您可以将strDate
的值分配给asp.net label
我相信dr["DOB"]
的数据类型为DateTime?
,即可以为null的DateTime。如果您的DateTime
可为空,请尝试
lblDOB.Text = dr["DOB"].Value.ToString("yyyy-MM-dd");
POC:.net Fiddle
答案 1 :(得分:1)
假设您要从数据库中将值dr["DOB"].ToString();
作为字符串导入。
#region date formatting
string str = dr["DOB"].ToString();
//before first appearance of "-"
string result = str.Substring(0, str.IndexOf("-"));
//between two "-"
var middleDigit = str.Split('-')[1];
if (Convert.ToInt16(middleDigit) < 10)
{
middleDigit = "0" + middleDigit;
}
//after last "-"
var last_ = str.Substring(str.LastIndexOf('-') + 1);
if (Convert.ToInt16(last_) < 10)
{
last_ = "0" + last_;
}
lblDOB.Text = result + "-" + middleDigit.ToString() + "-" + last_.ToString();
#endregion
答案 2 :(得分:0)
您始终可以使用var dt = DateTime.Parse(string)
,然后根据需要对其进行格式化。
格式示例:dt.ToString("yyyy-MM-dd")
答案 3 :(得分:0)
如果您使用的是ASP.NET Webforms,则可以按以下格式设置日期:
<asp:Label ID="label_salary_sum" runat="server"
Text='<%# Eval("Date", "{0:d MMM yyyy HH:mm}") %>'
/>
如果不需要,您可以以(HH:mm)格式删除时间。
如果您要从CodeBehind将值分配给Label,则可以遵循以下示例:
label1.Text = date.ToString("yyyy-MM-dd");
使用DataReader时,以下是正确的处理方式。希望您的DOB字段是DB的DateTime类型:
label1.Text = Convert.ToDateTime(dr["DOB"]).ToString("yyyy-MM-dd");
有关日期格式的完整参考,请检查link : Date Custom String Formats