Подтвердить что ты не робот

Преобразование формата строки в datetime в мм/дд/гггг

Мне нужно преобразовать строку в формате mm/dd/yyyy в переменную datetime, но она должна оставаться в формате mm/dd/yyyy.

string strDate = DateTime.Now.ToString("MM/dd/yyyy");

Пожалуйста, помогите.

4b9b3361

Ответ 1

Вы ищете метод DateTime.Parse() (Статья MSDN)

Итак, вы можете сделать:

var dateTime = DateTime.Parse("01/01/2001");

Что даст вам DateTime типизированный объект.

Если вам нужно указать формат даты, который вы хотите использовать, вы должны использовать DateTime.ParseExact (Статья MSDN)

Что вы будете использовать в такой ситуации (Где вы используете формат даты в британском стиле):

string[] formats= { "dd/MM/yyyy" }
var dateTime = DateTime.ParseExact("01/01/2001", formats, new CultureInfo("en-US"), DateTimeStyles.None);

Ответ 2

Для месячной части вам нужен заглавный M.

string strDate = DateTime.Now.ToString("MM/dd/yyyy");

Нижний регистр M предназначен для вывода (и разбора) в минуту (например, h:mm).

например. строка времени полной даты может выглядеть так:

string strDate = DateTime.Now.ToString("MM/dd/yyyy h:mm");

Обратите внимание на разницу в верхнем и нижнем регистре mM.


Также, если вы всегда будете иметь дело с одной и той же строкой формата даты и времени, вы можете сделать это проще, написав их как методы расширения С#.

public static class DateTimeMyFormatExtensions
{
  public static string ToMyFormatString(this DateTime dt)
  {
    return dt.ToString("MM/dd/yyyy");
  }
}

public static class StringMyDateTimeFormatExtension
{
  public static DateTime ParseMyFormatDateTime(this string s)
  {
    var culture = System.Globalization.CultureInfo.CurrentCulture;
    return DateTime.ParseExact(s, "MM/dd/yyyy", culture);
  }
}

ПРИМЕР: Перевод между DateTime/string

DateTime now = DateTime.Now;

string strNow = now.ToMyFormatString();
DateTime nowAgain = strNow.ParseMyFormatDateTime();

Обратите внимание, что нет способа сохранить пользовательскую информацию формата DateTime для использования в качестве default, как в .NET. Большинство форматирование строк зависит от установленной в данный момент культуры, т.е.

System.Globalization.CultureInfo.CurrentCulture.

Единственный простой способ, который вы можете сделать, - это запустить собственный метод расширения.

Кроме того, другим простым способом было бы использовать другой класс "контейнер" или "обертка" для вашего DateTime, то есть определенный специальный класс с explicit operator, который автоматически преобразуется в и из DateTime/string. Но это опасная территория.

Ответ 3

Мне понравилось это

var datetoEnter= DateTime.ParseExact(createdDate, "dd/mm/yyyy", CultureInfo.InvariantCulture);

Ответ 4

Вы также можете изменить формат, сделав это

string fecha = DateTime.Now.ToString(format:"dd-MM-yyyy");

//это изменит "/" для "-"

Ответ 5

Для меня работает следующее.

string strToday = DateTime.Today.ToString("MM/dd/yyyy");

Ответ 6

Решение

DateTime.Now.ToString("MM/dd/yyyy", CultureInfo.InvariantCulture)