无论输入如何,都以特定格式显示DateTime对象

时间:2014-02-24 06:00:57

标签: c# datetime

我有一个ASP.NET MVC应用程序,它允许用户选择存储在ViewModel中的日期。

这是转换为日期对象的代码:

viewModel.startDateAndTime = Convert.ToDateTime(buyToday.DealStartDateAndTime);

其中一位开发人员的系统日期时间设置为以下格式:

  

24-FEB-2014

在那个系统上,他得到了FormatException。 我想设置使用这种格式的日期时间:

  

毫米/日/年

无论在任何系统上设置是什么..

尝试使用这段无效的代码:

 string startDate = "24-Feb-2014";
 DateTime startDateTime = DateTime.ParseExact(startDate, "mmddyyyy", CultureInfo.InvariantCulture);

任何线索都值得赞赏。 谢谢&问候。

3 个答案:

答案 0 :(得分:5)

您的输入字符串与解析模式不匹配。

"24-Feb-2014"mmddyyyy有很大不同,不是吗?

您可以将DateTime.ParseCultureInfo.InvariantCulture

一起使用
string startDate = "24-Feb-2014";
DateTime startDateTime = DateTime.Parse(startDate, CultureInfo.InvariantCulture);

否则,对于ParseExact,输入必须与模式完全匹配,因此您应该将24022014作为输入传递。但是,您知道,mm表示分钟。对于,请使用MM :)因此模式应为ddMMyyyy。查看MSDN上的Custom Date and Time Format Strings页面。

答案 1 :(得分:1)

试试这个:

string startDate = "24-Feb-2014";
DateTime startDateTime = DateTime.ParseExact(startDate, "dd-MMM-yyyy",System.Globalization.CultureInfo.InvariantCulture);

答案 2 :(得分:0)

mm返回分钟,从00到59.所以请使用MM 这个月,从01到12。

string startDate = "24-Feb-2014";
DateTime startDateTime = DateTime.ParseExact(startDate, "ddMMyyyy", CultureInfo.InvariantCulture);

Custom Date and Time Format Strings