Dize biçiminde olan bir tarih saatini dönüştürürken sorun yaşıyorum ancak "yyyyMMdd"
biçimini kullanarak dönüştüremiyorum.
Benim kodum:
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;
Bir DateTime'ı ayrıştırmak için aşağıdaki yöntemlerden birini kullanın:
Alternatif olarak, try-parse kalıbını kullanabilirsiniz:
Özel Tarih ve Saat Biçimi Dizeleri]3 hakkında daha fazla bilgi edinin.
Bir DateTime'ı "yyyyMMdd" biçiminde bir dize olarak döndürmek için ToString
yöntemini kullanabilirsiniz.
string date = DateTime.ToString("yyyyMMdd");
Sizin durumunuzda, tarihin farklı formatta olduğu veya yanlış olduğu senaryoyu ele almak istemediğinizi varsayarsak, ParseExact
kullanmak en uygun olacaktır:
string dateToParse = "20170506";
DateTime parsedDate = DateTime.ParseExact(dateToParse,
"yyyyMMdd",
CultureInfo.InvariantCulture);
Özellik adlarına bakılırsa, bir dizeyi atama yoluyla tarihe dönüştürmeye çalışıyorsunuz gibi görünüyor:
claimantAuxillaryRecord.TPOCDate2 = tpoc2[0].ToString();
Muhtemelen mevcut UI kültüründen kaynaklanmaktadır ve bu nedenle atandığında tarih dizesini doğru şekilde yorumlayamaz.