Я работаю над программой, для которой требуется вернуть дату события. Я ищу "Дата", а не "DateTime". Должен быть тип данных, который возвращает только дату... есть?
Дата против DateTime
Ответ 1
Нет, нет. DateTime
представляет собой некоторый момент времени, состоящий из даты и времени. Однако вы можете получить часть даты через свойство Date
(это еще один DateTime
с временем, установленным на 00:00:00
).
И вы можете получить отдельные свойства даты через Day
, Month
и Year
.
Ответ 2
Я создал простую Структуру даты, когда вам нужна простая дата, не беспокоясь о временной части, часовых поясах, локальных или utc и т.д..
Date today = Date.Today;
Date yesterday = Date.Today.AddDays(-1);
Date independenceDay = Date.Parse("2013-07-04");
independenceDay.ToLongString(); // "Thursday, July 4, 2013"
independenceDay.ToShortString(); // "7/4/2013"
independenceDay.ToString(); // "7/4/2013"
independenceDay.ToString("s"); // "2013-07-04"
int july = independenceDay.Month; // 7
Ответ 3
К сожалению, не в .Net BCL. Даты обычно представляются как объект DateTime с временем, установленным до полуночи.
Как вы можете догадаться, это означает, что у вас есть все связанные с ним проблемы с часовым поясом, даже если для объекта Date вы абсолютно не хотите обрабатывать часовой пояс.
Ответ 4
Создайте класс-оболочку. Что-то вроде этого:
public class Date:IEquatable<Date>,IEquatable<DateTime>
{
public Date(DateTime date)
{
value = date.Date;
}
public bool Equals(Date other)
{
return other != null && value.Equals(other.value);
}
public bool Equals(DateTime other)
{
return value.Equals(other);
}
public override string ToString()
{
return value.ToString();
}
public static implicit operator DateTime(Date date)
{
return date.value;
}
public static explicit operator Date(DateTime dateTime)
{
return new Date(dateTime);
}
private DateTime value;
}
И выведите все, что хотите value
.
Ответ 5
Тип Date - это просто псевдоним типа DateTime, используемого VB.NET(например, int становится Integer). Оба этих типа имеют свойство Date, которое возвращает вам объект с временной частью, установленной в 00:00:00.
Ответ 6
DateTime имеет свойство Date, которое можно использовать для выделения части даты. Метод ToString также неплохо работает только с отображением части Date, когда часть времени пуста.
Ответ 7
Вы можете вернуть DateTime, где время составляет 00:00:00, и просто игнорировать его. Даты обрабатываются как целые числа времени, поэтому имеет смысл комбинировать дату со временем, которое все равно присутствует в целых числах.
Ответ 8
Для этого вам нужно использовать дату, но игнорировать значение времени.
Обычно дата была бы DateTime со временем 00:00:00
Тип DateTime
имеет свойство .Date
, которое возвращает DateTime
со значением времени, указанным выше.
Ответ 9
Объект DateTime имеет свойство, которое возвращает только часть даты значения.
public static void Main()
{
System.DateTime _Now = DateAndTime.Now;
Console.WriteLine("The Date and Time is " + _Now);
//will return the date and time
Console.WriteLine("The Date Only is " + _Now.Date);
//will return only the date
Console.Write("Press any key to continue . . . ");
Console.ReadKey(true);
}
Ответ 10
Нет Date
DataType.
Однако вы можете использовать DateTime.Date
для получения только даты.
например.
DateTime date = DateTime.Now.Date;
Ответ 11
public class AsOfdates
{
public string DisplayDate { get; set; }
private DateTime TheDate;
public DateTime DateValue
{
get
{
return TheDate.Date;
}
set
{
TheDate = value;
}
}
}
Ответ 12
Вы можете попробовать одно из следующих действий:
DateTime.Now.ToLongDateString();
DateTime.Now.ToShortDateString();
Но в BCL нет типа "Дата".