2009-03-26 3 views
2

SOLUTION

Merci à casperOne's answer, voici ma fonction résultante:Conversion d'une chaîne représentant le temps de 24H à temps 12H VB.NET

Shared Function FormatDate(ByVal s As String) As String 
    Dim DT As DateTime 
    s = Regex.Replace(s, "[^1234567890]", "") 
    DT = DateTime.ParseExact(s, "HHmm", _ 
     Globalization.CultureInfo.InvariantCulture) 
    Return DT.ToString("h:mm tt") 
End Function 

Je lis une base de données qui contient des informations de temps un format de chaîne, hh: mm. Pour une raison quelconque, je me souviens d'une fonction intégrée que j'ai utilisée il y a longtemps, mais pour la vie de moi, je ne me souviens pas comment le faire. Donc, à la place, j'ai écrit cette fonction rapide n sale:

Shared Function FormatDate(ByVal s As String) As String 
    '' this function takes a time string from the database 
    '' and changes it from 24h to 12h 

    Dim oSplit As String() = s.Split(":"c) 
    Dim oRet As String = "", suffix As String = "" 
    Dim hour, minute As String 

    If CInt(oSplit(0)) > 12 Then 
     hour = CStr(CInt(oSplit(0)) - 12) 
     suffix = "PM" 
    Else 
     hour = oSplit(0) 
     suffix = "AM" 
    End If 
    minute = oSplit(1) 
    oRet = String.Format("{0}:{1} {2}", hour, minute, suffix) 
    Return oRet 
End Function 

Est-ce que quelqu'un connaît la fonction particulière dont je pense que je parle?

+0

Est-ce ... une question? – Randolpho

+0

désolé, après avoir cliqué après avoir réalisé que je n'avais pas ajouté la question à la fin: P – Anders

Répondre

5

Vous pouvez voir la réponse affichée à la question « Comment convertir 1400-1500 à 14 heures-15 heures », situé ici:

How to convert 1400-1500 to 2pm - 3pm?

Dans le format, vous remplacez le H majuscule avec un h minuscule dans le format pour passer au format 12 heures.

+0

Pimp ces réponses, casper! – Randolpho

+0

Merci, cela va me lancer. à votre santé – Anders

Questions connexes