Як конвертувати DateTime в/з певний формат рядка (в обох напрямках, наприклад, заданий формат "yyyyyMMd")?
У мене проблема з конвертацією дати, яка знаходиться в рядковому форматі, але я не можу конвертувати її, використовуючи формат "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
3
Парсинг DateTime:
Для розбору DateTime скористайтеся одним з наступних методів:
DateTime.Parse
DateTime.ParseExact
.Також можна використовувати шаблон try-parse:
DateTime.TryParse
DateTime.TryParseExact
Детальніше про Користувацькі рядки формату дати та часу.
Перетворення DateTime в рядок:
Для повернення DateTime у вигляді рядка у форматі "yyyyMMdd" можна скористатися методом
ToString
.string date = DateTime.ToString("yyyyMMdd");
Ваш випадок:
У вашому випадку, якщо ви не хочете обробляти сценарій, коли дата має інший формат або відсутня, найзручніше використовувати
ParseExact
:Ви можете перетворити свій рядок у значення
DateTime
таким чином:Ви можете перетворити значення
DateTime
у відформатований рядок таким чином:Виходячи з назв властивостей, схоже на те, що ви намагаєтеся перетворити рядок в дату за присвоєнням:
Ймовірно, це пов'язано з поточною культурою інтерфейсу користувача, і тому він не може правильно інтерпретувати рядок дати при присвоюванні.