Je rencontre un problème pour convertir une date/heure au format chaîne mais je ne parviens pas à la convertir au format "yyyyMMdd"
.
Mon code est:
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;
si vous avez une date dans une chaîne au format "ddMMyyyy" et que vous voulez la convertir en "yyyyMMdd", procédez comme suit:
DateTime dt = DateTime.ParseExact(dateString, "ddMMyyyy",
CultureInfo.InvariantCulture);
dt.ToString("yyyyMMdd");
Pour analyser un DateTime, appliquez l'une des méthodes suivantes:
Vous pouvez aussi utiliser try-parse pattern:
En savoir plus sur Chaînes de format de date et d’heure personnalisées .
Pour retourner un DateTime sous forme de chaîne au format "yyyyMMdd", vous pouvez utiliser ToString
method.
string date = DateTime.ToString("yyyyMMdd");
Dans votre cas, en supposant que vous ne souhaitiez pas gérer le scénario lorsque la date est d'un format différent ou manquant, il serait plus pratique d'utiliser ParseExact
:
string dateToParse = "20170506";
DateTime parsedDate = DateTime.ParseExact(dateToParse,
"yyyyMMdd",
CultureInfo.InvariantCulture);
Vous pouvez convertir votre chaîne en une valeur DateTime
comme ceci:
DateTime date = DateTime.Parse(something);
Vous pouvez convertir une valeur DateTime
en une chaîne mise en forme comme ceci:
date.ToString("yyyyMMdd");
Chaîne au format de date aaaa-MM-jj: Exemple:
TxtCalStDate.Text = Convert.ToDateTime(objItem["StartDate"]).ToString("yyyy/MM/dd");
Si vous voulez avoirDATEcomme chaîne avecHEUREaussi. On peut faire comme ça:
//Date and Time is taking as current system Date-Time
DateTime.Now.ToString("yyyyMMdd-HHMMss");
Utilisez DateTime.TryParseExact()
si vous souhaitez faire correspondre un format de date spécifique
string format = "yyyyMMdd";
DateTime dateTime;
DateTime.TryParseExact(dateString, format, CultureInfo.InvariantCulture,
DateTimeStyles.None, out dateTime);
Vous pouvez utiliser DateTime.TryParse()
au lieu de DateTime.Parse()
.
Avec TryParse()
vous avez une valeur de retour si elle a réussi et avec Parse()
vous devez gérer une exception
C'est le moyen simple de convertir au format
DateTime.Now.ToString("yyyyMMdd");
non c'est une chaîne avec aaaa/mm/jj et j'en ai besoin au format aaaaMMjj
Si vous avez seulement besoin de supprimer les barres obliques d'une chaîne, ne les remplacez-vous pas?
Exemple:
myDateString = "2013/03/28";
myDateString = myDateString.Replace("/", "");
myDateString devrait maintenant être "20130328".
Moins d'overkill :)
Faites simplement comme ça.
string yourFormat = DateTime.Now.ToString("yyyyMMdd");
Bonne codage :)
En fonction des noms de propriété, il semble que vous tentiez de convertir une chaîne en date par affectation:
claimantAuxillaryRecord.TPOCDate2 = tpoc2[0].ToString();
Cela est probablement dû à la culture actuelle de l'interface utilisateur et par conséquent, il ne peut pas interpréter correctement la chaîne de date lorsqu'il est affecté.
De C # 6:
var dateTimeUtcAsString = $"{DateTime.UtcNow:o}";
Le résultat sera: "2019-01-15T11: 46: 33.2752667Z"
Vous pouvez essayer ces codes
claimantAuxillaryRecord.TPOCDate2 = Convert.ToDateTime(tpoc2[0]).ToString("yyyyMMdd");
Ou
claimantAuxillaryRecord.TPOCDate2 = Convert.ToDateTime(tpoc2[0]).ToString("yyyyMMdd hh:mm:ss");
Une façon plus simple que je trouvais tout en cherchant cette réponse également;
string date = DateTime.Now.ToString("yyyyMMdd", System.Globalization.CultureInfo.GetCultureInfo("en-US"));