我需要删除日期时间的时间部分,或者可能有以下格式的日期在对象形式,而不是在字符串形式。
06/26/2009 00:00:00:000
我不能使用任何字符串转换方法,因为我需要对象形式的日期。
我尝试先将DateTime转换为字符串,从它中删除特定的时间日期,但它添加了12:00:00 AM,只要我将它转换回DateTime对象。
我需要删除日期时间的时间部分,或者可能有以下格式的日期在对象形式,而不是在字符串形式。
06/26/2009 00:00:00:000
我不能使用任何字符串转换方法,因为我需要对象形式的日期。
我尝试先将DateTime转换为字符串,从它中删除特定的时间日期,但它添加了12:00:00 AM,只要我将它转换回DateTime对象。
当前回答
将Date属性添加到DateTime变量
var dateTime = DateTime.Now
var onlyDate = dateTime.Date
或者您也可以使用DataType注释。
[DataType(DataType.Date)]
public DateTime dateTime {get; set;}
DataType注释位于System.ComponentModel.DataAnnotations命名空间内。
其他回答
下面是另一个使用String的方法。格式
DateTime todaysDate = DateTime.UtcNow;
string dateString = String.Format("{0:dd/MM/yyyy}", todaysDate);
Console.WriteLine("Date with Time: "+ todaysDate.ToString());
Console.WriteLine("Date Only : " + dateString);
输出:
Date with Time: 9/4/2016 11:42:16 AM
Date Only : 04/09/2016
如果日期时间存储在数据库中,这也适用。
有关更多日期和时间格式,请检查这些链接:
参考1
参考2
希望有帮助。
试试这个,如果你使用DateTimeOffset,它也会照顾时区
date1 = date1.LocalDateTime.Date;
如果你需要增加工作时间,可以这样做:
date1 = date1.LocalDateTime.Date;
date1 = date1.AddHours(23).AddMinutes(59).AddSeconds(59);
自从。net 6 / c# 10以来,你可以这样做:
var dateOnly = DateOnly.FromDateTime(dateTime);
您可以使用像https://www.nuget.org/packages/Date/这样的Date库 使用Date值,将它们转换为DateTimes,等等。
免责声明我是上述软件包的作者。
创建只包含所需属性的结构体。然后使用扩展方法从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();