0
var date = "05/18/2012";

DateTime.ParseExact(date, "yyyy/MM/dd", CultureInfo.InvariantCulture)

DateTime.Parse(date);

我认为这里的问题是日期应该是日/月/年。问题是客户想要这种格式。该系统必须能够以英语和法语运行。我希望以相同的方式解析所有日期,以便它们都采用格式 - yyyy/MM/dd。

前面的例子似乎都不起作用。

编辑:我可以将日期设置为 2012/05/18 格式,但如何为 DateTime.Now 执行此操作?

4

2 回答 2

3

它应该是

string date = "05/18/2012";
DateTime dateA = DateTime.ParseExact(date, "MM/dd/yyyy", CultureInfo.InvariantCulture);
string newDate = dateA.ToString("yyyy-MM-dd");
于 2012-09-18T16:14:09.967 回答
2

ParseExact 允许你告诉解析器日期的格式。所以在你的例子中你说它是 yyyy/MM/dd 所以你应该有像“2012/05/18”这样的日期设置才能正确解析。

这是示例。

var date = "05/18/2012";
var date2 = "2012/05/18";

var pDate = DateTime.Parse(date);
var pDate2 = DateTime.ParseExact(date2, "yyyy/MM/dd", null);

Console.WriteLine("Normal Date Formated: " + pDate.ToString("yyyy/MM/dd"));
Console.WriteLine("Your Format, Parsed: " + pDate2.ToShortDateString());
Console.WriteLine("DateTime.Now Formatted: " + DateTime.Now.ToString("yyyy/MM/dd"));

输出

Normal Date Formated: 2012/05/18
Your Format, Parsed: 5/18/2012
DateTime.Now Formatted: 2012/09/18
于 2012-09-18T16:17:12.510 回答