Преобразование строки, представляющей 24-часовой формат, в 12-часовой формат. VB.NET - PullRequest
2 голосов
/ 26 марта 2009

РЕШЕНИЕ

Благодаря ответу casperOne , вот моя результирующая функция:

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

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

 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

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

1 Ответ

5 голосов
/ 26 марта 2009

Вы можете увидеть ответ на вопрос «Как конвертировать 1400-1500 в 14:00 - 15:00?», Расположенный здесь:

Как преобразовать 1400-1500 в 14:00 - 15:00?

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...