Имам проблем с конвертирането на дата, която е във формат низ, но не мога да я конвертирам, като използвам формата "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;
За да анализирате DateTime, използвайте един от следните методи:
Алтернативно можете да използвате шаблона try-parse:
Прочетете повече за Потребителски низове за форматиране на дата и час.
За да върнете DateTime като низ във формат "yyyyMMdd", можете да използвате метода ToString
.
string date = DateTime.ToString("yyyyMMdd");
Във вашия случай, ако приемем, че не искате да се справяте със сценарий, при който датата е с различен формат или е сгрешена, най-удобно би било да използвате ParseExact
:
string dateToParse = "20170506";
DateTime parsedDate = DateTime.ParseExact(dateToParse,
"yyyyMMdd",
CultureInfo.InvariantCulture);
Въз основа на имената на свойствата изглежда, че се опитвате да преобразувате низ в дата чрез присвояване:
claimantAuxillaryRecord.TPOCDate2 = tpoc2[0].ToString();
Вероятно това се дължи на текущата култура на потребителския интерфейс и поради това той не може да интерпретира правилно низът за дата при присвояване.