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

本文关键字:电子邮件 日期 格式 控制 | 更新日期: 2023-09-27 18:36:08

我正在使用下面的代码发送电子邮件 我的问题正在使用日期下拉框 如何控制日期在收到的电子邮件中的显示方式?现在它正在显示 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;
    }
}

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

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

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

(您可能需要使用自定义格式提供程序,具体取决于原始格式和当前区域性。

获得有效的 DateTime 对象后,可以按照您喜欢的任何方式将其表示为字符串。 例如:

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