• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 25582
  • Last Modified:

How to convert military time to standard time?

What's an easy way to convert military time to standard time examples:

2115  = 9:15 pm
0051 = 00:51 am
1734 = 5:34 pm
0912 = 9:12 am

Richard Kreidl
Richard Kreidl
  • 3
  • 2
  • 2
1 Solution
strStandardTime = Format$(Left$(strMilitaryTime,2) & ":" & Right$(strMilitaryTime,2), "Medium Time")
Richard KreidlSoftware DeveloperAuthor Commented:
All I get is the following


Mike TomlinsonMiddle School Assistant TeacherCommented:
Option Explicit

Private Sub Command1_Click()
    Dim milTimes As Variant
    Dim stdTime As Date
    Dim milTime As String
    Dim curMilTime As Variant
    milTime = "2115,0051,1734,0912"
    milTimes = Split(milTime, ",")
    For Each curMilTime In milTimes
        stdTime = militaryToStandardTime(curMilTime)
        Debug.Print curMilTime & " = " & stdTime
End Sub

Private Function militaryToStandardTime(ByVal militaryTime As String) As Date
    Dim n As Date
    Dim curDateTime As String
    Dim strHour As String
    Dim strMinute As String
    Dim ampm As String
    strHour = Left(militaryTime, 2)
    strMinute = Right(militaryTime, 2)
    If Val(strHour) > 12 Then
        strHour = CStr(Val(strHour) - 12)
        ampm = "PM"
        ampm = "AM"
        If strHour = "00" Then
            strHour = "12"
        End If
    End If
    n = Now()
    curDateTime = Day(n) & "/" & Month(n) & "/" & Year(n) & " " & strHour & ":" & strMinute & " " & ampm
    If IsDate(curDateTime) Then
        militaryToStandardTime = CDate(curDateTime)
    End If
End Function
Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

What was the value of  your?


If it is not in the format of the string that you said that it would be, then the procedure won't work.
Richard KreidlSoftware DeveloperAuthor Commented:
Your method would have worked I just tested it wrong. My mistake. I don't know if you can get the points since I already accepted another answer.

Mike TomlinsonMiddle School Assistant TeacherCommented:
The difference betwen our two solutions is that I create a Date out of the military time while, GrahamSkan's method returns a string representing the military time in standard format.

To get the points changed you can post a request here:

Be sure to give a link back this question:



Don't bother to change the points. I just got all the points by mistake on another question. We can't actually do anything with them and anyway, Idle_Mind's solution was far more comprehensive.
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Cloud Class® Course: MCSA MCSE Windows Server 2012

This course teaches how to install and configure Windows Server 2012 R2.  It is the first step on your path to becoming a Microsoft Certified Solutions Expert (MCSE).

  • 3
  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now