yyyy-mm-dd日期格式(当日期和月份为一位数字时)

时间:2019-05-05 10:09:05

标签: c# asp.net

我在sql表中有yyyy-mm-dd格式的日期值,但是对于单个数字的日期和月份格式, 1989-1-3如何在1989-01-03的{​​{1}}中显示。

4 个答案:

答案 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