2015-05-10 4 views
0

Я хочу сравнить даты. Одна дата будет жестко закодирована, другие будут выбраны из системы.Ошибка форматирования DateTime?

Мой код дает ошибку форматирования в этой строке:

string iStringdate = "05-05-2015"; 
DateTime oDate = DateTime.ParseExact(iStringdate, "dd-mm-yyyy", null); 

Полный код:

private void button1_Click(object sender, EventArgs e) 
{ 
    string iStringdate = "05-05-2015"; 
    DateTime oDate = DateTime.ParseExact(iStringdate, "dd-mm-yyyy", null); 
    //MessageBox.Show(oDate.ToString()); 

    string iStringtime = "10:12 pm"; 
    DateTime oTime = DateTime.ParseExact(iStringtime, "HH:mm tt", null); 
    //MessageBox.Show(oTime.ToString()); 

    DateTime time = DateTime.Now; 
    DateTime date = DateTime.Today; 

    if (oDate < date) 
    { 
     Console.WriteLine("successfull"); 
    } 
    else { 
     Console.WriteLine("fail"); 
    } 

} 

Кроме того, как я могу просто получить системную дату, а не системное время вместе с ним ?

Где я ошибаюсь?

+0

https://msdn.microsoft.com/en-us/library/8kb3ddd4%28v=vs.110%29.aspx –

ответ

2

«мм» обозначает минуты, пока «ММ» означает месяцы.

DateTime.ParseExact(iStringdate, "dd-MM-yyyy", null); 

Нажмите here для получения полного списка опций форматирования даты.

И DateTime.Now возвращает дату и время, в то время как DateTime.Today возвращает текущую дату и 00:00:00 как время.

+0

Когда я делаю MessageBox.Show (oDate.ToString()); он дает мне дату вместе с 00:00:00. как я могу получить дату из этого? –

+0

Вы можете использовать тот же формат для преобразования в строку: '.ToString (" dd-MM-yyy ")' – bytecode77

Смежные вопросы