Rachana Patel Ответов: 7

Преобразование даты и времени в дату с помощью c#


У меня есть DateOfBirth в формате '1986-03-24T00:00:00', но я хочу, чтобы это было как'1986-03-24'
только формат.
Я не знаю, как преобразовать datetime в date?

Заранее спасибо.

Rachana Patel

Я не могу использовать приведенное ниже решение, потому что требование такое , у меня есть текстовый файл, и я конвертирую текстовый файл в xml-файл в моем xsd datatype for DOB is date, и я не могу изменить его, читая txt-файл takig datetime в строковом формате, поэтому нужно конвертировать, потому что тип данных в xsd-это дата, я хочу только часть даты.

Philippe Mori

В формате XML дата и время должны быть записаны в формате, соответствующем стандарту. В вашем текстовом файле этот формат известен. Таким образом, единственным разумным решением является правильный анализ даты в текстовом файле в объект DateTime и правильная запись ее в XML-файл с использованием ожидаемого формата XML, поскольку вы хотите, чтобы ваш XML правильно работал с XML-сериализацией или при импорте XML в Excel или любое другое использование. Таким образом, ваш вопрос несколько неуместен, так как это только один способ сделать это правильно и вся необходимая информация уже существует в документации MSDN.

Кстати, в файле .NET нет объекта даты. В некоторых случаях вы можете использовать .ToDate() но это только усекает значение tomidnight. В какой-то ситуации (не знаю, применяется ли она для сериализации XML) может существовать атрибут для указания формата, как это было бы в случае с XML-сериализацией. ASP.NET управление MVC или DateTime.

Philippe Mori

Где находится исходный код для разбора даты в текстовом файле и записи ее в XML? Мы должны знать, что вы делаете в первую очередь, чтобы дать наилучший возможный ответ.

7 Ответов

Рейтинг:
46

Prasad_Kulkarni

Попробовать это:

DateTime dt = DateTime.ParseExact(yourDatetime, "yyyy/MM/DD",                                   CultureInfo.InvariantCulture);


Обратиться: Форматирование даты - времени для описания строки формата отображения[^]


Рейтинг:
40

VJ Reddy

В случае если ваше начальное значение находится в DateTime формат тогда ToString способ получения DateTime структуру можно использовать с InvariantCulture DateFormat с требуемым рисунком, как показано ниже:

DateTime dateVal = new DateTime(1986,03,24);
Console.WriteLine (dateVal.ToString());
Console.WriteLine (dateVal.ToString("yyyy-MM-dd",
	System.Globalization.CultureInfo.InvariantCulture.DateTimeFormat));

//Output
//3/24/1986 12:00:00 AM
//1986-03-24


Sergey Alexandrovich Kryukov

Правильно, 5.
--СА

VJ Reddy

Спасибо, СА. :)

Рейтинг:
30

Mohamed Mitwalli

Привет ,
Проверить это

DateTime dat = Convert.ToDateTime("1986-03-24T00:00:00");
Label2.Text=  dat.ToString("yyyy-MM-dd");

с уважением
М. Митвалли


Рейтинг:
2

Yatin_Chauhan

если вы используете datetime picker, то установите для него свойство Format.


Рейтинг:
2

anujkumarvats

string dt = DateTime.Now.ToString("MM-dd-yyyy hh:mm:ss tt");


Рейтинг:
1

Manas Bhardwaj

Подобный этому:

http://msdn.microsoft.com/en-us/library/cc165448.aspx[^]


Rachana Patel

Я хочу отформатировать дату, потому что в моем xsd DOB тип данных-это только дата.

Prasad_Kulkarni

Мои 5!

Рейтинг:
1

Juan Ossa

Создайте функцию, а затем вызовите ее оттуда, где вам нужно привести экземпляр dateTime к короткому формату даты.

public static void ParseStringToDate(string date, out DateTime responseDate)
{
string[] dateformats = new string[] { "yyyyMMdd", "yyyy/MM/dd", "yyyy-MM-dd", "M/dd/yy" };
if (!DateTime.TryParseExact(date, dateformats, CultureInfo.InvariantCulture, DateTimeStyles.None, out responseDate))
{
   throw new FormatException("El formato de la fecha  no es válido");
}
}
//Then you call this function. 

DateTime DateTimeValue = DateTime.Now;
DateTime Fecha = item.FechaCita;
clsUtils.ParseStringToDate(DateTimeValue.ToString(), out Fecha);


CHill60

Кажется немного излишним, когда все, что вам действительно нужно использовать, - это ToString()