控制来自C#的已发送电子邮件中的日期格式

时间:2016-02-25 15:10:07

标签: c# asp.net

我使用下面的代码发送电子邮件,我的问题是使用日期下拉框,如何控制收到的电子邮件中日期的显示方式?现在显示 yy / mm / dd 我试图将其设置为 mm / dd / yy

protected void Send_Button_Click(object sender, EventArgs e)
{
    try
    {
        MailMessage msg = new MailMessage();
        msg.From = new MailAddress("");
        msg.To.Add("");
        msg.Subject = "Email";
        msg.Body = string.Format("First Name: <b>{0}</b><br/>Last Name: <b>{1}</b><br/>Email: <b>{2}</b><br/>Certificate number: <b>{3}</b><br/>Preferred itinerary: <b>{4}</b><br/>Preferred departure date: <b>{5}</b><br/>Number of travelers: <b>{6}</b><br/>Number of cabins: <b>{7}</b><br/>Cabin type: <b>{8}</b>", this.FirstName_TextBox.Text, this.LastName_TextBox.Text, this.Email_TextBox.Text, this.CertificateNumber_TextBox.Text, this.PreferredItinerary_DropDownList.Text, this.PreferredDepartureDate_TextBox.Text, this.NumberOfTravelers_TextBox.Text, this.NumberOfCabins_TextBox.Text, this.CabinType_DropDownList.Text);
        msg.IsBodyHtml = true;
        msg.BodyEncoding = Encoding.UTF8;
        SmtpClient smt = new SmtpClient("smtpout.secureserver.net", 80);
        smt.EnableSsl = false;
        smt.Credentials = new System.Net.NetworkCredential("", "");
        smt.Send(msg);
        this.Response.Redirect("ThankYou.aspx");
    }
    catch (Exception ex)
    {
        this.ResultLabel.Text = ex.Message;
    }
}

1 个答案:

答案 0 :(得分:1)

首先,将值转换为实际DateTime。这或许很简单:

DateTime departureDate;
if (!DateTime.TryParse(this.PreferredDepartureDate_TextBox.Text, out departureDate))
    // couldn't parse the date, show an error

(根据原始格式和当前文化,您可能需要使用custom format provider。)

拥有有效的DateTime对象后,您可以represent it as a string任意一种方式。例如:

departureDate.ToString(@"MM\/dd\/yyyy")