2009-03-26 8 views
2

SOLUTION

Dank casperOne's answer, hier ist meine resultierende Funktion:einen String Konvertierung VB.NET 12H Zeit darstellt

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 

ich eine Datenbank lese, die Zeitinformationen hält in ein Zeichenfolgenformat, hh: mm. Aus irgendeinem Grund erinnere ich mich an eine eingebaute Funktion, die ich vor langer Zeit benutzt habe, aber für das Leben von mir kann ich mich nicht erinnern, wie ich es machen soll. Also, stattdessen schrieb ich diese schnelle n schmutzige Funktion:

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 

Weiß jemand von der besonderen Funktion, die ich denke, ich beziehe mich?

+0

Ist ... da eine Frage? – Randolpho

+0

Entschuldigung, Post klickte nach der Erkenntnis, dass ich die Frage nicht bis zum Ende hinzugefügt hatte: P – Anders

Antwort

5

können Sie sehen, die Antwort auf die Frage gestellt „Wie 1400-1500 zu 02.00 konvertieren - 03.00“, hier befindet:

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

Im Format, Sie mit einem Kapital H ersetzen Kleinbuchstaben h im Format, um zu einem 12-Stunden-Format zu wechseln.

+0

Pimp diese Antworten, casper! – Randolpho

+0

Danke, das wird mich starten. Prost – Anders