我想从dd-mmm-yyyy转换日期格式(2013年5月16日) 至日期格式mm / dd / yyyy(2013年12月9日)。
我正在使用此代码。但仍然无法获得正确的价值。月份值变为零。
string dt = DateTime.Parse(txtVADate.Text.Trim()).ToString("mm/dd/yyyy");
在上面的代码中,txtVADate是TextBox Control,它给出了日期格式 喜欢 dd-mmm-yyyy例子(2013年5月16日)。
任何答案都很明显。
答案 0 :(得分:10)
月份的格式说明符为MM
而不是mm
,请尝试使用MM/dd/yyyy
。此外,当使用自定义格式时,最好通过InvariantCulture
以避免与您的应用程序运行的当前文化发生任何冲突,即
DateTime.Parse(txtVADate.Text.Trim()).ToString("MM/dd/yyyy", CultureInfo.InvariantCulture);
答案 1 :(得分:4)
使用大写M
字母。
m - 分钟
M - 月
答案 2 :(得分:2)
您必须使用MM
代替mm
和CultureInfo.InvariantCulture
作为第二个参数
string dt = DateTime.Parse(txtVADate.Text.Trim()).ToString("MM/dd/yyyy", CultureInfo.InvariantCulture);
答案 3 :(得分:1)
斜杠/
表示:“将我替换为您的文化信息的实际当前日期分隔符。”
要强制/
作为分隔符,您可以使用CultureInfo.InvariantCulture
:
string dt = DateTime.Parse(txtVADate.Text.Trim())
.ToString("MM/dd/yyyy", CultureInfo.InvariantCulture);
MSDN:
/ 当前中定义的日期分隔符 System.Globalization.DateTimeFormatInfo.DateSeparator属性 用于区分年,月和日。
(你必须使用MM而不是mm,因为小写是分钟而大写是月)
答案 4 :(得分:0)
string dt = datatime.toshortdatestring`
答案 5 :(得分: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;
}