2016-06-28 100 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 

通知上月底

2

缺乏.Date的使用.Date您只从结果的DateTime对象中选择日期部分。因此,时间的默认值将被应用,删除.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会告诉你区别