Как преобразовать DateTime в / из определенного строкового формата (в обе стороны, например, заданный формат «yyyyMMdd»)?

У меня проблема с преобразованием даты и времени в строковом формате, но я не могу преобразовать его в формате "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;
125
задан Matt 7 September 2018 в 10:54
поделиться

5 ответов

если у вас есть дата в строке с форматом «ддММгггг» и вы хотите преобразовать ее в «ггггММдд», вы можете сделать следующее:

DateTime dt = DateTime.ParseExact(dateString, "ddMMyyyy", 
                                  CultureInfo.InvariantCulture);
dt.ToString("yyyyMMdd");
216
ответ дан 24 November 2019 в 00:56
поделиться

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

DateTime date = DateTime.Parse(something);

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

date.ToString("yyyyMMdd");
37
ответ дан 24 November 2019 в 00:56
поделиться

Анализ DateTime:

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

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

Подробнее о строках настраиваемого формата даты и времени .

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

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

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

Ваш случай:

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

string dateToParse = "20170506";
DateTime parsedDate = DateTime.ParseExact(dateToParse, 
                                          "yyyyMMdd",
                                          CultureInfo.InvariantCulture);
62
ответ дан 24 November 2019 в 00:56
поделиться

Судя по именам свойств, похоже, что вы пытаетесь преобразовать строку в дату путем присвоения:

claimantAuxillaryRecord.TPOCDate2 = tpoc2[0].ToString();

Вероятно, это связано с текущим языком и региональными параметрами пользовательского интерфейса, и поэтому он не может правильно интерпретировать строку даты при назначении.

2
ответ дан 24 November 2019 в 00:56
поделиться

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

5
ответ дан 24 November 2019 в 00:56
поделиться
Другие вопросы по тегам:

Похожие вопросы: