将日期格式从dd-mmm-yyyy(16-May-2013)转换为mm/dd/yyyy(09/12/2013)。

3

我想将日期格式从dd-mmm-yyyy (16-May-2013)转换为mm/dd/yyyy (09/12/2013)。

我正在使用以下代码。但仍然无法获取正确的值,月份值变成了零。

string dt = DateTime.Parse(txtVADate.Text.Trim()).ToString("mm/dd/yyyy");

在上面的代码中,txtVADate是文本框控件,它提供了日期格式,例如dd-mmm-yyyy(例如16-May-2013)。
欢迎提出任何问题或建议。

你可以在文档中查找此内容:http://msdn.microsoft.com/zh-cn/library/8kb3ddd4.aspx - DasKrümelmonster
6个回答

11

月份的格式说明符为MM而不是mm,请尝试使用MM/dd/yyyy。另外,在使用自定义格式时,最好传递InvariantCulture以避免与应用程序当前文化设置发生冲突。

DateTime.Parse(txtVADate.Text.Trim()).ToString("MM/dd/yyyy", CultureInfo.InvariantCulture);

请参见自定义日期和时间格式字符串


5

请使用大写字母M

m - 分钟
M - 月份


谢谢。我之前不知道这个,浪费了一些时间。 - Hari

2

在此处,您需要使用 MM 而不是 mm,并且将 CultureInfo.InvariantCulture 作为第二个参数。

string dt = DateTime.Parse(txtVADate.Text.Trim()).ToString("MM/dd/yyyy", CultureInfo.InvariantCulture);

1
斜线/表示:“用您的文化信息中实际的当前日期分隔符替换我”。
为了强制使用/作为分隔符,您可以使用{{link1:CultureInfo.InvariantCulture}}:
string dt = DateTime.Parse(txtVADate.Text.Trim())
    .ToString("MM/dd/yyyy", CultureInfo.InvariantCulture);

MSDN

/ 当前System.Globalization.DateTimeFormatInfo.DateSeparator属性中定义的日期分隔符,用于区分年、月和日。

(由于小写表示分钟,大写表示月份,因此您还需要使用MM而不是mm)


1
我认为这个答案不应该被踩,是的,月份的格式应该是MM,但这不是OP真正面临的问题,问题在于日期分隔符。 - Habib

0
string dt = datatime.toshortdatestring`

0

这是您的解决方案。

using System.Globalization;

 string dt = DateTime.Parse(txtDate.Text.Trim()).ToString("mm/dd/yyyy", CultureInfo.InvariantCulture);

也可以这样做

 public string FormatPostingDate(string txtdate)
 {
     if (txtdate != null && txtdate != string.Empty)
     {
         DateTime postingDate = Convert.ToDateTime(txtdate);
         return string.Format("{0:mm/dd/yyyy}", postingDate);
     }
     return string.Empty;
 }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接