C# 日期时间转换为无效格式

C# 日期时间转换为无效格式,c#,datetime,C#,Datetime,我尝试将2013年9月29日下午2:44:28(mm/dd/yyyy)转换为dd/mm/yyyy格式 转换后我有一个奇怪的约会 我试过了 dateTimeVar.ToString("dd/mm/yyyy"); 29/44/2013 日期是DateTime本身的一种类型 小写mm表示分钟,请尝试以下方法: dateTimeVar.ToString("dd/MM/yyyy"); 但是,这是否有效取决于您当地的文化。如果当前区域性的日期分隔符不同,/将替换为该分隔符。因此,如果您想强制执行它,请

我尝试将2013年9月29日下午2:44:28(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
表示分钟,请尝试以下操作:

dateTimeVar.ToString("dd/MM/yyyy");
但是,这是否有效取决于您当地的文化。如果当前区域性的日期分隔符不同,
/
将替换为该分隔符。因此,如果您想强制执行它,请使用
CultureInfo.InvariantCulture:

dateTimeVar.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);

MM
表示月份,
MM
表示分钟。这就是为什么它得到的是你的分钟数(即
44
),而不是你的月值

像这样使用它

dateTimeVar.ToString("dd/MM/yyyy");
退房

请记住,
/
用作日期分隔符时具有特殊意义。它将自身替换为当前区域性日期分隔符。强制与一起使用会更好

dateTimeVar.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);
看一看,


如果我想将dd/MM/yyyy中的字符串转换为DateTime呢

然后你可以使用这个方法

将日期和时间的指定字符串表示形式转换为其 使用指定格式和特定区域性的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

这里a.

MM
表示月份,
MM
表示分钟。这就是为什么它得到的是你的分钟数(即
44
),而不是你的月值

像这样使用它

dateTimeVar.ToString("dd/MM/yyyy");
退房

请记住,
/
用作日期分隔符时具有特殊意义。它将自身替换为当前区域性日期分隔符。强制与一起使用会更好

dateTimeVar.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);
看一看,


如果我想将dd/MM/yyyy中的字符串转换为DateTime呢

然后你可以使用这个方法

将日期和时间的指定字符串表示形式转换为其 使用指定格式和特定区域性的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
这里有一个

问题是
mm
代表分钟,而您需要
mm
表示月份


问题是
mm
代表分钟,您需要
mm
,这将是个月

蒂姆的答案是正确的,但要完全删除格式字符串,您可以使用。”ToSortDateString'

DateTime date = DateTime.Today;

var stringDate = date.ToShortDateString();
var stringDate2 = date.ToString("dd/MM/yyyy");

Tim的回答是正确的,但要完全删除格式字符串,您可以使用ToSortDateString'

DateTime date = DateTime.Today;

var stringDate = date.ToShortDateString();
var stringDate2 = date.ToString("dd/MM/yyyy");


显示完整的代码。。你的
文化是什么?@SonerGönül我添加了代码,我认为“mm”应该用大写字母。我怀疑你会有一个奇怪的约会-我认为你会有一个例外。展示你的完整代码。。你的
文化是什么?@SonerGönül我添加了代码,我认为“mm”应该用大写字母。我怀疑你得到了一个奇怪的日期-我认为你得到了一个例外。如果我想将dd/mm/yyyy中的字符串转换为DateTime呢?@SubinJacob在我的回答中更新了。@SubinJacob你尝试了我的完整代码?这应该行得通。你确定吗?顺便问一下,你的
文化是什么。你看,你得到了
1/1/2013 12:00:00 AM
string
),它无法转换回DateTime。如何做到这一点?@SubinJacob
1/1/2013 12:00:00 AM
已经
DateTime
(用
dt
调用)您正在尝试将
DateTime
转换为
DateTime
。如果我想将dd/MM/yyyyy中的字符串转换为DateTime怎么办?@SubinJacob在我的回答中已更新。@SubinJacob您尝试了我的完整代码?这应该行得通。你确定吗?顺便问一下,你的
文化是什么。你看,你得到了
1/1/2013 12:00:00 AM
string
),它无法转换回DateTime。如何做到这一点?@SubinJacob
1/1/2013 12:00:00 AM
已经
DateTime
(使用
dt
调用)您正在尝试将
DateTime
转换为
DateTime