我需要删除日期时间的时间部分,或者可能有以下格式的日期在对象形式,而不是在字符串形式。
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对象。
当前回答
自从。net 6 / c# 10以来,你可以这样做:
var dateOnly = DateOnly.FromDateTime(dateTime);
其他回答
创建只包含所需属性的结构体。然后使用扩展方法从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();
这可以简单地这样做:
var dateOnly = new DateTime(dateTime.Year, dateTime.Month, dateTime.Day)
我认为你会这样:DateTime onlyDate = DateTime. today . date; 或者,这是相同的DateTime onlyDate = yourDateTime.Date; 所以使用属性Date。
DateTime。日期
var newDate = DateTime.Now; //newDate.Date property is date portion of DateTime
获取DateTime对象的Date部分对我来说没有效果,因为我在客户端工作,返回的web服务值有一些空日期。结果,它试图获取空值的Date部分,并抛出运行时异常。下面是我解决问题的方法:
string dt = employer.BirthDay.ToString();
if(dt == ""){ dt = "N/A";}
else dt = dt.Substring(0,10);
将DateTime值作为字符串转换为字符串变量。 检查它是否为空。如果为空,分配一个字符串变量。 如果不为空,则获取字符串DateTime值的前10个字符并将其分配给字符串变量。
我分享这个是为了将来参考。