Как преобразовать DateTime в / из определенного строкового формата (в обоих направлениях, например, заданный формат "yyyyMMdd")? - PullRequest
124 голосов
/ 13 августа 2010

У меня проблема с преобразованием даты и времени в строковом формате, но я не могу преобразовать его в формате "yyyyMMdd".

Мой код:

string tpoc = refSubClaim.BenefitsFolder.BenefitFolderIdNumber.ToString();
string[] tpocinfo = Regex.Split(tpoc,";");

for (int i = 0; i < tpocinfo.Length; i++)
{
    switch (i)
    {
        case 0:
        {
            string[] tpoc2 = Regex.Split(tpocinfo[0], ",");
            claimantAuxillaryRecord.TPOCDate2 = tpoc2[0].ToString();
            claimantAuxillaryRecord.TPOCAmount2 = Convert.ToDecimal(tpoc2[1]);
            claimantAuxillaryRecord.FundingDelayedBeyondTPOCStartDate2 = tpoc2[2].ToString();
        }
        break;

Ответы [ 14 ]

215 голосов
/ 13 августа 2010

если у вас есть дата в строке в формате "ddMMyyyy" и вы хотите преобразовать ее в "yyyyMMdd", вы можете сделать это следующим образом:

DateTime dt = DateTime.ParseExact(dateString, "ddMMyyyy", 
                                  CultureInfo.InvariantCulture);
dt.ToString("yyyyMMdd");
61 голосов
/ 13 августа 2010

Разбор даты и времени:

Чтобы проанализировать DateTime, используйте один из следующих методов:

В качестве альтернативы вы можете использовать try-parse pattern:

Подробнее о Пользовательские строки формата даты и времени .

Преобразование DateTime в строку:

Чтобы вернуть DateTime в виде строки в формате "yyyyMMdd", вы можете использовать метод ToString.

  • Пример фрагмента кода: string date = DateTime.ToString("yyyyMMdd");
  • Обратите внимание, что * в верхнем регистре M относится к месяцам, а в нижнем регистре m - в минутах.

Ваш случай:

В вашем случае, если вы не хотите обрабатывать сценарий, когда дата отличается от формата или отсутствует, было бы наиболее удобно использовать ParseExact:

string dateToParse = "20170506";
DateTime parsedDate = DateTime.ParseExact(dateToParse, 
                                          "yyyyMMdd",
                                          CultureInfo.InvariantCulture);
36 голосов
/ 13 августа 2010

Вы можете преобразовать вашу строку в DateTime значение следующим образом:

DateTime date = DateTime.Parse(something);

Вы можете преобразовать значение DateTime в форматированную строку следующим образом:

date.ToString("yyyyMMdd");
11 голосов
/ 17 февраля 2013

Формат даты в формате гггг-мм-дд: Пример:

TxtCalStDate.Text = Convert.ToDateTime(objItem["StartDate"]).ToString("yyyy/MM/dd");   
10 голосов
/ 29 июля 2015

Если вы хотите иметь ДАТА в виде строки с ВРЕМЯ . Мы можем сделать так:

//Date and Time is taking as current system Date-Time    
DateTime.Now.ToString("yyyyMMdd-HHMMss");
6 голосов
/ 19 апреля 2013

Используйте DateTime.TryParseExact(), если хотите сравнить с определенным форматом даты

   string format = "yyyyMMdd"; 
    DateTime dateTime;
    DateTime.TryParseExact(dateString, format, CultureInfo.InvariantCulture,
                                             DateTimeStyles.None, out dateTime);
5 голосов
/ 31 января 2017

Просто сделайте так.

string yourFormat = DateTime.Now.ToString("yyyyMMdd");

Удачного кодирования:)

5 голосов
/ 13 августа 2010

Вы можете использовать DateTime.TryParse() вместо DateTime.Parse().
С TryParse() вы получите возвращаемое значение, если оно прошло успешно, а с Parse() вы должны обработать исключение

3 голосов
/ 26 июля 2016

Это простой способ конвертировать в формат

 DateTime.Now.ToString("yyyyMMdd");
3 голосов
/ 28 марта 2013

нет строки с гггг / мм / дд, и мне нужно это в формате ггггMMdd

Если вам нужно только удалить косые черты из строки, разве вы просто не замените их?

Пример:

myDateString = "2013/03/28";
myDateString = myDateString.Replace("/", "");

myDateString теперь должно быть «20130328».

Меньше перегибов:)

...