我需要删除日期时间的时间部分,或者可能有以下格式的日期在对象形式,而不是在字符串形式。

06/26/2009 00:00:00:000

我不能使用任何字符串转换方法,因为我需要对象形式的日期。

我尝试先将DateTime转换为字符串,从它中删除特定的时间日期,但它添加了12:00:00 AM,只要我将它转换回DateTime对象。


当前回答

使用date. toshortdatestring()获取没有时间组件的日期

var date = DateTime.Now
var shortDate = date.ToShortDateString() //will give you 16/01/2019

使用date. tostring()自定义日期格式

var date = DateTime.Now
var shortDate = date.ToString('dd-MMM-yyyy') //will give you 16-Jan-2019

其他回答

您可以使用像https://www.nuget.org/packages/Date/这样的Date库 使用Date值,将它们转换为DateTimes,等等。

免责声明我是上述软件包的作者。

在我的经验中,上述解决方案都不起作用,可能是因为我想从数据库中提取的日期中删除时间,但下面的代码工作得很好:

var date = target_date.Value.ToString("dd/MM/yyyy"); 

创建只包含所需属性的结构体。然后使用扩展方法从DateTime实例轻松获取该结构。

public struct DateOnly
{
    public int Day { get; set; }
    public int Month { get; set; }
    public int Year { get; set; }
}

public static class DateOnlyExtensions
{
    public static DateOnly GetDateOnly(this DateTime dt)
    {
        return new DateOnly
        {
            Day = dt.Day,
            Month = dt.Month,
            Year = dt.Year
        };
    }
}

使用

DateTime dt = DateTime.Now;
DateOnly result = dt.GetDateOnly();

试着创造你自己的结构。DateTime对象将同时具有日期和时间

使用ToString()方法只获取日期部分,

操作: DateTime。现在约会。ToString()“dd / MM / yyyy,

注意: “dd/ mm /yyyy”格式中的“mm”必须大写