7
votes

Convertir MM / DD / AAA AAA EN YYYYMMDD (VB.NET)

Y a-t-il une façon de convertir une date de format: DD / MM / AAA AAA AUX YYYYMMDD? Par exemple, à partir du: 25/07/2011 à 20110725? dans vb.net?


0 commentaires

4 Réponses :


12
votes

Les dates elles-mêmes ne sont pas ont formats intrinsèquement. Vous pouvez analyser une chaîne dans un DateTime en l'analysant avec DD / mm / aaaa , puis convertissez-le dans une chaîne à l'aide de yyyymmdd format: xxx

ou en vb: xxx

(et assurez-vous d'avoir une importation pour System.globalization . )

Cependant, idéalement, vous devez le garder comme un DateTime (ou similaire) pour aussi longtemps que possible.


6 commentaires

Jon, juste curieux de ce sujet. Pourquoi ne peut-il pas utiliser string.format méthode?


@reggie: pour la deuxième ligne? Il pouvait, mais ce serait plus de travail imo. Pourquoi spécifier un spécificateur de format de chaîne composé lorsque vous souhaitez uniquement formater une seule valeur?


Merci pour la pointe, la deuxième ligne est ce que j'ai manqué!


Je ne suis pas du tout accompli dans vb.net, alors s'il vous plaît, ne prenez pas cela comme une critique parce que c'est juste une question..craient être quelque chose qui me manque. Je comprends un peu de choses sur ce que l'ensemble de la culture se réfère à un point de vue sémantique, mais d'un point de vue syntaxiste, il semble être complètement ... non accepté, lorsque j'essaie de le saisir dans la SSIS IDE pour .NET. Qu'est-ce que je rate?


@Isaac: Je ne sais rien sur l'IDE SSIS, mais la réponse originale n'était que dans C #, pas VB. J'ai également fourni une version VB maintenant. Assurez-vous d'avoir importé le System.Globalization Espace de noms.


Ah d'accord. Je pensais en quelque sorte que. Merci



0
votes

Utilisez la méthode DateTime.parseexact pour analyser la date, puis utilisez denttimeobj.tostring ("yyyymmdd") . .

datetime.parseexact


0 commentaires

5
votes
 CDate(Datetext).ToString("yyyyMMdd")

1 commentaires

Cette réponse pourrait échouer en fonction de la culture. C'est pourquoi la réponse de Jon est meilleure que celle-ci. Par exemple, comment déciderait si le 10/12/2017 est le 10 décembre ou le 12 octobre sans le parseexact?



0
votes
Public Function DateFormateYYYYMMDD(ByVal Dtp As DateTimePicker) As String

   Try
      Dim StrDate, StrYear, StrMonth, StrDay As String
      StrDate = FormatDateTime(Dtp.Value, DateFormat.ShortDate)
      StrMonth = Month(Dtp.Value)
      StrDay = Convert.ToString(Dtp.Value.Day)
      StrYear = Year(Dtp.Value)
      StrDate = StrYear + "-" + StrMonth + "-" + StrDay

      Return StrDate
   Catch ex As Exception

   End Try
End Function
this function can be used to convert datetime picker value format to yyyyMMdd

0 commentaires