2016-06-28 2 views
0

я следующее:C# Дата форматирования вопроса

string QDI_DATE_FORMAT = "yyyy-MM-ddTHH:mm:00.0000000K";    

string from = "2016-06-20T16:20:00.0000000-04:00"; 
string to = "2016-06-21T16:21:00.0000000-04:00"; 

DateTime fromDate = DateTime.ParseExact(from, QDI_DATE_FORMAT, CultureInfo.InvariantCulture, DateTimeStyles.None).Date; 
DateTime toDate = DateTime.ParseExact(to, QDI_DATE_FORMAT, CultureInfo.InvariantCulture, DateTimeStyles.None).Date; 

Console.WriteLine(fromDate); 
Console.WriteLine(toDate); 

Это печатает дату без часов и минут. Как заставить его работать и показывать время?

ответ

0

То, что вы должны сделать, просто удалить окончание «.Date» из вашего кода.

string QDI_DATE_FORMAT = "yyyy-MM-ddTHH:mm:00.0000000K"; 

string from = "2016-06-20T16:20:00.0000000-04:00"; 
string to = "2016-06-21T16:21:00.0000000-04:00"; 

DateTime fromDate = DateTime.ParseExact(from, QDI_DATE_FORMAT, CultureInfo.InvariantCulture, DateTimeStyles.None); 
DateTime toDate = DateTime.ParseExact(to, QDI_DATE_FORMAT, CultureInfo.InvariantCulture, DateTimeStyles.None); 

Console.WriteLine(fromDate); 
Console.WriteLine(toDate); 

Console.ReadLine(); 
1

Вы вызываете .date который выбирающий только дата часть:

string from = "2016-06-20T16:20:00.0000000-04:00"; 
DateTime fromDateTime = DateTime.ParseExact(from, QDI_DATE_FORMAT, CultureInfo.InvariantCulture, DateTimeStyles.None); 
DateTime toDateTime = DateTime.ParseExact(to, QDI_DATE_FORMAT, CultureInfo.InvariantCulture, DateTimeStyles.None); 

будет производить:

> 6/20/2016 8:20:00 PM 
> 6/21/2016 8:21:00 PM 

Обратите внимание на отсутствие .Date на конце

2

С помощью .Date вы выбираете часть даты только из приведенного объекта DateTime. Таким образом, будет применено значение по умолчанию для времени: Remove .Date, тогда вы получите ожидаемый результат;

DateTime fromDate = DateTime.ParseExact(from, QDI_DATE_FORMAT, CultureInfo.InvariantCulture, DateTimeStyles.None); 
DateTime toDate = DateTime.ParseExact(to, QDI_DATE_FORMAT, CultureInfo.InvariantCulture, DateTimeStyles.None); 

Это Example покажет вам разницу

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