2016-09-09 5 views
0

, если мой компьютер формат даты и времени, как дд гггг/мм/или мм/дд/гггг или независимо формированияотличается от формата даты, когда получить текущую дату только с помощью DateTime

Datetime date1 = ... /// assume date1 is date1 < date2 and date1 < date3 
DateTime date2 = DateTime.Parse(DateTime.Now.ToString("dd-MM-yyyy")) ; 
DateTime date3 = DateTime.Now.Date; 

DateTime.Compare(date1 ,date2); and DateTime.Compare(date1 ,date3); 

что бы результат? это для date2 и date3 возврат 1 при сравнении date1? DateTime.Parse(DateTime.Now.ToString("dd-MM-yyyy") равен DateTime.Now.Date?

+0

что такое 'date1'? Вы код показываете '...' и определяете дважды 'date2' – Prisoner

+0

@Alex обновили вопрос. – theinarasu

+0

@theinarasu - Вы понимаете, что тип 'DateTime' делает ** не ** имеет формат и что это только при анализе или выводе его как' string', что у вас есть форматы? Это 'string', который имеет формат. – Enigmativity

ответ

3

Не знаете, почему вы делаете DateTime.Parse(DateTime.Now.ToString("dd-MM-yyyy")); ..?

Чтобы ответить на ваш вопрос, как date2, так и date3 станут разными в зависимости от локализации вашего компьютера (или устройства, выполняющего этот код).

Так что если date1 всегда были ранними, то вы можете сделать TimeSpan diff = date3 - date1;, который даст вам TimeSpan объект. Затем вы можете получить diff.Days, чтобы получить разницу в днях.

И да date3 будет иметь только дату. Время будет установлено до полуночи 12:00. См. here.

TimeSpan.Days

+0

- это неправильный подход? пожалуйста, исправьте меня, если я ошибаюсь, главная цель, которую я делаю, чтобы получить текущую дату только без времени, DateTime.Now.date, это вернет время 12:00 вечера – theinarasu

+1

Анализ даты и времени теперь в строку и обратно очень неправильный. Я убью тебя там. – Bob

+0

спасибо за то, что вы указали это ... но DateTime.now.Date было возвращено со временем как 12.00 утра. Это вызывает любую проблему, когда Datetime.compare, потому что значение даты1, проходящее только с датой без времени – theinarasu

1

Если вы хотите только datewithout время, то вы можете попробовать строка х = DateTime.Now.ToShortDateString(); Результат будет x = "09-09-2016"

+0

Спасибо за ответ .. – theinarasu