10
votes

Comment convertir une heure de 24 heures à 12 heures dans VB.NET comme HH: MM AM / PM

Alors disons que j'ai 1400, je veux le convertir en 14h00

J'ai essayé ce qui suit: xxx

et cela me donnerait ceci: < / p>

6/12/2012 02:00:00

Je ne veux pas la partie de date, je n'ai pas non plus besoin des secondes. Tout ce dont j'ai besoin, c'est 14h00

Comment pourrais-je y parvenir? Merci!


1 commentaires

Parseexact ne renvoie pas une chaîne. Avez-vous des options strictes?


6 Réponses :


17
votes

Le parseexact La méthode renvoie une valeur DateTime , pas une chaîne. Si vous l'attribuez à une variable de chaîne, vous le convertiez automatiquement, ce qui utilise la mise en forme standard.

Si vous le souhaitez dans un format spécifique, formatez la valeur DateTime comme une chaîne: < / p> xxx


0 commentaires

0
votes

Il y a deux façons d'y parvenir.

option 1 forte> (en utilisant chaînes de format de date et d'heure standard ): p> xxx pré>

Option 2 forte> (en utilisant Cordes de format de date et d'heure personnalisées ): p>

Dim theTime As DateTime = new DateTime(2008, 4, 10, 6, 30, 0)
Dim convertedTime As String = theTime.ToString("hh:mm tt")


3 commentaires

Vous n'avez pas besoin de la culture EN-US , vous pouvez utiliser cultureInfo.invarianTculture .


@Timschmelter La chaîne de format standard t ne reviendra pas AM / PM lors de l'utilisation de la cultureInfo.invarianTculture. Voir compilidification.net/1u5


Désolé, vous avez raison, j'ai négligé les différences d'option 1 et 2.



1
votes
Dim theTime = New Date(2012, 6, 12, 14, 0, 0)
Dim formatted = theTime.ToString("h:mm tt", Globalization.CultureInfo.InvariantCulture)
Custom Date and Time Format Strings

1 commentaires

@ Cyborgx37: C'est la partie trompeuse de cette question. Réellement op n'a aucun problème avec l'analyse de 1400 à une date d'heure: "... et cela me donnerait ceci: 6/12/2012 02:00:00 Je ne veux pas la partie de date, je n'ai pas besoin de la secondes. Tout ce dont j'ai besoin, c'est 14h00 " Il veut juste convertir une variable DateTime à une chaîne avec le format approprié.



2
votes

Label1.text = format (maintenant, "HH: mm") : Label1's Text = 10:26 (ou quel que soit le temps)

label1.text = format (maintenant "HH: mm tt") : Texte de l'étiquette = 10h26

Label1.text = Format (maintenant "DDDD DD, MMMM, AAAA") : Label1's Text = Le jeudi 21, août, 2014 (ou quelle que soit la date)


1 commentaires

Assurez-vous d'utiliser le formatage correct (backticks pour inllindecode), car cela rend votre réponse plus lisible. Jetez un coup d'œil au Aide et testez la barre d'outils de l'éditeur afin de voir ce qui est possible.



2
votes
Label1.Text = Now.ToShortTimeString.ToString()   (10:26 PM)

Label1.Text = Now.ToLongTimeString.ToString()    (10:26:30 PM) 

0 commentaires

0
votes

Essayez celui-ci ...

  Dim TimeNow As String
  TimeNow = TimeOfDay.ToString("h:mm:ss tt")


0 commentaires