2009-03-26 2 views
2

РЕШЕНИЕ

Благодаря casperOne's answer, вот моя результирующая функция:Преобразование строки, представляющее время 24H для времени 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 

Я читаю базу данных, которая содержит информацию о времени, в формат строки, hh: mm. По какой-то причине я помню встроенную функцию, которую я использовал давно, но для жизни я не могу вспомнить, как это сделать. Поэтому вместо этого я написал эту быструю n грязную функцию:

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 

Кто-нибудь знает о конкретной функции, о которой я думаю, имею в виду?

+0

Есть ... есть вопрос? – Randolpho

+0

извините, кликнул сообщение после осознания я не добавил вопрос до конца: P – Anders

ответ

5

Вы можете увидеть ответ отвечал на вопрос «Как конвертировать 1400-1500 в 2pm - 3pm», расположенный здесь:

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

В формате, вы заменяете капитальной Н с в нижнем регистре h в формате, чтобы перейти к 12-часовому формату.

+0

Pimp те ответы, casper! – Randolpho

+0

Спасибо, это поможет мне начать. ура – Anders

Смежные вопросы