c#中的日期格式转换

时间:2013-09-03 15:11:57

标签: c# asp.net datetime

如何转换04/09/2013 8:09:10 PM至09/04/2013(MM-dd-yyyy)。我试图转换,但它将09作为日期,04作为月。

请帮忙

[HttpPost]
public string getdailynote(DateTime selectedDate)
//selectedDate gets date as 04/09/2013 8:09:10 PM
{
    string x = selectedDate.ToString("MM-dd-yyy", CultureInfo.InvariantCulture);
    string daily;
    DateTime dt = Convert.ToDateTime(x);
    //dt gets value as {09/04/2013 12:00:00 AM} but 09 as date and 04 as month
    Dnote.RealDate =dt;
    daily = _scheduler.GetDailyNote(Dnote);
    return daily;
}

3 个答案:

答案 0 :(得分:5)

  

以09为日期,04为月

是的,因为你已经说过了,所以改变

"MM-dd-yyy"

"dd/MM/yyyy h:mm:ss tt"

DateTime.ParseExact("04/09/2013 8:09:10 PM","dd/MM/yyyy h:mm:ss tt", CultureInfo.InvariantCulture);

Demo

现在,如果您想将其转换为格式为MM-dd-yyyy的字符串:

string result = dt.ToString("MM-dd-yyyy", CultureInfo.InvariantCulture);

答案 1 :(得分:2)

使用

DateTime.ParseExact(x , "MM-dd-yyy", CultureInfo.InvariantCulture);

答案 2 :(得分:1)

DateTime 转换为 string时,您使用实例方法ToString的重载,您可以在其中指定格式化字符串,没关系。

但是当你转向另一个方向时,你不应该使用Convert.ToDateTime方法。而是使用DateTime.ParseExactDateTime.TryParseExact,因为有了它们,您可以再次指定所需的格式字符串(以及格式提供程序(文化))。