我想将日期格式从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)。
欢迎提出任何问题或建议。
我想将日期格式从dd-mmm-yyyy (16-May-2013)转换为mm/dd/yyyy (09/12/2013)。
我正在使用以下代码。但仍然无法获取正确的值,月份值变成了零。
string dt = DateTime.Parse(txtVADate.Text.Trim()).ToString("mm/dd/yyyy");
月份的格式说明符为MM
而不是mm
,请尝试使用MM/dd/yyyy
。另外,在使用自定义格式时,最好传递InvariantCulture
以避免与应用程序当前文化设置发生冲突。
DateTime.Parse(txtVADate.Text.Trim()).ToString("MM/dd/yyyy", CultureInfo.InvariantCulture);
请参见自定义日期和时间格式字符串。
请使用大写字母M
。
m - 分钟
M - 月份
在此处,您需要使用 MM
而不是 mm
,并且将 CultureInfo.InvariantCulture
作为第二个参数。
string dt = DateTime.Parse(txtVADate.Text.Trim()).ToString("MM/dd/yyyy", CultureInfo.InvariantCulture);
/
表示:“用您的文化信息中实际的当前日期分隔符替换我”。/
作为分隔符,您可以使用{{link1:CultureInfo.InvariantCulture
}}:string dt = DateTime.Parse(txtVADate.Text.Trim())
.ToString("MM/dd/yyyy", CultureInfo.InvariantCulture);
MSDN:
/ 当前System.Globalization.DateTimeFormatInfo.DateSeparator属性中定义的日期分隔符,用于区分年、月和日。
(由于小写表示分钟,大写表示月份,因此您还需要使用MM而不是mm)
MM
,但这不是OP真正面临的问题,问题在于日期分隔符。 - Habibstring dt = datatime.toshortdatestring`
这是您的解决方案。
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;
}