2017-09-14 28 views
-1

我需要从这个只得到了日期,而不是时间:。日返还小时,如何删除?

DateTime.Parse(tr.SelectSingleNode(".//td[@class='full-date']").InnerText.Trim()).Date; 

,但我得到这样的结果:

2018年3月24日12:00:00 AM

我怎么能得到的只有:

2018年3月24日

注意,我保存结果的格式如下:

public DateTime Date { get; set; } 
+3

你DateTime对象是什么它说,这是'Date' +'时间'...你不能仅使用日期创建日期时间对象,默认情况下它将有时间00:00(24小时制表示法) – EpicKip

+0

我不能只在属性 –

+0

中设置“日期”对象呃,只是让它离开它在00.00这是什么问题?这样,你有整整一天 – EpicKip

回答

6

请注意,我将结果保存的格式如下:

保存结果DateTime你不”类型的变量以某种格式保存。只有DateTime的字符串表示形式具有格式。 DateTime始终都是,日期和时间(我猜是因此的名称;))

我怎样才能得到:3/24/2018?当您尝试使用ToString方法的此重载得到DateTime的字符串表示

这一点就变得很重要:

string string_representation = Date.ToString("MM/dd/yyyy", CultureInfo.InvariantCulture); 
1

这个怎么样?

 DateTime time = DateTime.Now; 
     Console.WriteLine(time.ToString("MM/dd/yy")); 
2

您不能从System.DateTime中删除时间组件。如果您愿意,您可以创建自己的日期表示。或者,你可以用得到的日期字符串,

Date.ToString("MM/dd/yyyy") 
1

考虑使用NodaTime,其中有一个日期没有时间(反之亦然)的概念。

要转换从DateTimeLocalDate

using System; 
using NodaTime; 

namespace YourApp.Extensions 
{ 
    public static class NodaTimeExtensions 
    { 
     public static LocalDate ToNodaLocalDate(this DateTime dateTime) 
     { 
      return new LocalDate(dateTime.Year, dateTime.Month, dateTime.Day); 
     } 
    } 
}