У меня проблема с преобразованием даты и времени в строковом формате, но я не могу преобразовать его в формате "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 dt = DateTime.ParseExact(dateString, "ddMMyyyy",
CultureInfo.InvariantCulture);
dt.ToString("yyyyMMdd");
Вы можете преобразовать вашу строку в значение DateTime
следующим образом:
DateTime date = DateTime.Parse(something);
Вы можете преобразовать значение DateTime
в форматированную строку следующим образом:
date.ToString("yyyyMMdd");
Чтобы проанализировать DateTime, используйте один из следующих методов:
В качестве альтернативы вы можете использовать try-parse шаблон:
Подробнее о строках настраиваемого формата даты и времени .
Чтобы вернуть DateTime в виде строки в формате «yyyyMMdd», вы можете использовать метод ToString
.
строка date = DateTime.ToString ("yyyyMMdd");
В вашем случае, если вы не хотите обрабатывать сценарий, когда дата имеет другой формат или отсутствует, было бы удобнее использовать ParseExact
:
string dateToParse = "20170506";
DateTime parsedDate = DateTime.ParseExact(dateToParse,
"yyyyMMdd",
CultureInfo.InvariantCulture);
Судя по именам свойств, похоже, что вы пытаетесь преобразовать строку в дату путем присвоения:
claimantAuxillaryRecord.TPOCDate2 = tpoc2[0].ToString();
Вероятно, это связано с текущим языком и региональными параметрами пользовательского интерфейса, и поэтому он не может правильно интерпретировать строку даты при назначении.
Вы можете использовать DateTime.TryParse()
вместо DateTime.Parse()
При использовании TryParse()
вы получаете возвращаемое значение в случае успеха, а при использовании Parse()
вы должны обработать исключение