我尝试将 9/29/2013 2:44:28 PM (mm/dd/yyyy) 转换为 dd/mm/yyyy 格式。
转换后我得到了一个奇怪的日期。
我试过了
dateTimeVar.ToString("dd/mm/yyyy");
29/44/2013
日期DateTime
本身就是一种类型。
小写mm
表示分钟,试试这个:
dateTimeVar.ToString("dd/MM/yyyy");
但是,这是否有效取决于您当地的文化。如果您当前文化的日期分隔符不同,/
将被替换。因此,如果您想强制执行它,请使用CultureInfo.InvariantCulture:
dateTimeVar.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);
MM
是几个月,mm
是几分钟。这就是为什么它会获取您的分钟数(即44
)而不是您的月份值。
像这样使用它;
dateTimeVar.ToString("dd/MM/yyyy");
查看;
请记住,/
当您将其用作日期分隔符时,它具有特殊含义。它用您当前的文化日期分隔符替换自己。强制使用 withInvariantCulture
会更好。
dateTimeVar.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);
看一眼;
如果我想将 dd/MM/yyyy 中的字符串转换为 DateTime 怎么办?
然后你可以使用DateTime.ParseExact
方法。
使用指定的格式和特定于区域性的格式信息将日期和时间的指定字符串表示形式转换为其等效的 DateTime。字符串表示的格式必须与指定的格式完全匹配。
举个例子;
string s = "01/01/2013";
DateTime dt = DateTime.ParseExact(s, "dd/MM/yyyy", CultureInfo.InvariantCulture);
Console.WriteLine(dt);
输出将是;
1/1/2013 12:00:00 AM
这里一个DEMO.
dateTimeVar.ToString("dd/mm/yyyy"); // Change to dd/MM/yyyy
问题是mm
分钟,你需要MM
几个月
蒂姆的回答是正确的,但是您可以使用完全删除格式字符串。'ToShortDateString'
DateTime date = DateTime.Today;
var stringDate = date.ToShortDateString();
var stringDate2 = date.ToString("dd/MM/yyyy");