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 示例(2013 年 5 月 16 日)。

任何答案都是可观的。

4

6 回答 6

11

月份的格式说明符MM不是mm,请尝试使用MM/dd/yyyy. 此外,当使用自定义格式时,最好传递InvariantCulture以避免与您的应用程序运行的当前文化发生任何冲突,即

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

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

于 2013-05-13T12:10:28.997 回答
5

使用大写M字母。

m - 分钟
M - 月

于 2013-05-13T12:13:00.177 回答
2

您必须使用MM而不是mmCultureInfo.InvariantCulture作为第二个参数

string dt = DateTime.Parse(txtVADate.Text.Trim()).ToString("MM/dd/yyyy", CultureInfo.InvariantCulture);
于 2013-05-13T12:11:37.250 回答
1

斜线的/意思是:“用你的文化信息的实际当前日期分隔符替换我”。

要强制/作为分隔符,您可以使用CultureInfo.InvariantCulture

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

MSDN

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

(您还必须使用 MM 而不是 mm,因为小写是分钟,而大写是月份)

于 2013-05-13T12:11:25.717 回答
0
string dt = datatime.toshortdatestring`
于 2013-05-13T13:11:50.573 回答
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;
 }
于 2013-12-10T17:36:40.287 回答