我需要删除日期时间的时间部分,或者可能有以下格式的日期在对象形式,而不是在字符串形式。
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);
其他回答
我知道这是一个有很多答案的老帖子,但我还没有见过这种删除时间部分的方法。假设您有一个名为myDate的DateTime变量,其中日期和时间部分。你可以从它创建一个新的DateTime对象,没有时间部分,使用这个构造函数:
public DateTime(int year, int month, int day);
是这样的:
myDate = new DateTime(myDate.Year, myDate.Month, myDate.Day);
通过这种方式,您可以基于旧的DateTime对象创建一个新的DateTime对象,其中00:00:00作为时间部分。
使用一点RegEx:
Regex.Match(Date.Now.ToString(), @"^.*?(?= )");
生成格式为:dd/mm/yyyy的日期
使用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
获取DateTime对象的Date部分对我来说没有效果,因为我在客户端工作,返回的web服务值有一些空日期。结果,它试图获取空值的Date部分,并抛出运行时异常。下面是我解决问题的方法:
string dt = employer.BirthDay.ToString();
if(dt == ""){ dt = "N/A";}
else dt = dt.Substring(0,10);
将DateTime值作为字符串转换为字符串变量。 检查它是否为空。如果为空,分配一个字符串变量。 如果不为空,则获取字符串DateTime值的前10个字符并将其分配给字符串变量。
我分享这个是为了将来参考。
您可以使用格式字符串为输出字符串提供您喜欢的格式。
DateTime dateAndTime = DateTime.Now;
Console.WriteLine(dateAndTime.ToString("dd/MM/yyyy")); // Will give you smth like 25/05/2011
阅读有关自定义日期和时间格式字符串的详细信息。