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

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

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

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


当前回答

获取DateTime对象的Date部分对我来说没有效果,因为我在客户端工作,返回的web服务值有一些空日期。结果,它试图获取空值的Date部分,并抛出运行时异常。下面是我解决问题的方法:

string dt = employer.BirthDay.ToString();
if(dt == ""){ dt = "N/A";}
else dt = dt.Substring(0,10);

将DateTime值作为字符串转换为字符串变量。 检查它是否为空。如果为空,分配一个字符串变量。 如果不为空,则获取字符串DateTime值的前10个字符并将其分配给字符串变量。

我分享这个是为了将来参考。

其他回答

使用一点RegEx:

Regex.Match(Date.Now.ToString(), @"^.*?(?= )");

生成格式为:dd/mm/yyyy的日期

以上答案都没有解决我的winforms问题。

到达ONLY date的最简单方法是Datetime中的简单函数:

DateTime dt = DateTime.now;
String BirthDate = dt.ToShortDateString();

你将只在生日字符串中有日期。

如果你想从DateTime中删除部分时间,尝试使用下面的代码:

DateTime dt = new DateTime();

dt = DateTime.Now; //ex: 31/1/2017 6:30:20 PM

TimeSpan remainingTime = new TimeSpan(0, dt.Hour - 5, dt.Minute - 29, dt.Second - 19);
dt=dt.Add(remainingTime);

label1.Text = dt.ToString("HH:mm:ss"); // must be HH not hh

输出:01:01:01

string dt = myCalender.SelectedDate.ToString();
string date = dt.Remove(10);
displayDate.Content = date;

如果你从日历上取日期,我们也会得到时间。这不是一直都需要的。使用它,我们可以从日期中删除时间。

static void Main(string[] args)
{
    string dateStrings =  "2014-09-01T03:00:00+00:00" ;

    DateTime convertedDate = DateTime.Parse(dateStrings);
    Console.WriteLine("  {0} ----------------- {1}",

    convertedDate,DateTime.Parse(convertedDate.ToString()).ToString("dd/MM/yyyy"));

    Console.Read();
}