Έχω πρόβλημα με τη μετατροπή μιας ημερομηνίας που είναι σε μορφή συμβολοσειράς, αλλά δεν μπορώ να τη μετατρέψω χρησιμοποιώντας τη μορφή "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);
Μπορείτε να μετατρέψετε τη συμβολοσειρά σας σε τιμή DateTime
ως εξής:
DateTime date = DateTime.Parse(something);
Μπορείτε να μετατρέψετε μια τιμή DateTime
σε μια μορφοποιημένη συμβολοσειρά όπως αυτή:
date.ToString("yyyyMMdd");
Με βάση τα ονόματα των ιδιοτήτων φαίνεται ότι προσπαθείτε να μετατρέψετε μια συμβολοσειρά σε ημερομηνία μέσω ανάθεσης:
claimantAuxillaryRecord.TPOCDate2 = tpoc2[0].ToString();
Πιθανώς οφείλεται στην τρέχουσα κουλτούρα του UI και ως εκ τούτου δεν μπορεί να ερμηνεύσει σωστά τη συμβολοσειρά ημερομηνίας κατά την ανάθεση.