我尝试将9/29/2013 2:44:28 PM(mm / dd / yyyy)转换为dd / mm / yyyy格式。
转换后我得到了一个奇怪的日期。
我试过
dateTimeVar.ToString("dd/mm/yyyy");
29/44/2013
日期本身就是DateTime
的类型。
答案 0 :(得分:9)
小写mm
表示分钟,请尝试此操作:
dateTimeVar.ToString("dd/MM/yyyy");
但是,如果这取决于您当地的文化。如果您当前文化的日期分隔符不同,/
将被替换为{1}}。因此,如果您想强制执行,请使用CultureInfo.InvariantCulture:
dateTimeVar.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);
答案 1 :(得分:3)
MM
是几个月,mm
是几分钟。这就是为什么它得到你的分钟(44
)而不是你的月份值。
像使用它一样;
dateTimeVar.ToString("dd/MM/yyyy");
退房;
请记住,/
在将其用作日期分隔符时具有特殊含义。它将替换为您当前的文化日期分隔符。强制使用InvariantCulture
会更好。
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 。
答案 2 :(得分:2)
dateTimeVar.ToString("dd/mm/yyyy"); // Change to dd/MM/yyyy
问题是mm
代表分钟,你需要MM
这将是几个月
答案 3 :(得分:0)
DateTime date = DateTime.Today;
var stringDate = date.ToShortDateString();
var stringDate2 = date.ToString("dd/MM/yyyy");