• 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

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

:


0
 
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
    Next
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"
    Else
        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
0
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.

 
GrahamSkanRetiredCommented:
What was the value of  your?

strMilitaryTime.

If it is not in the format of the string that you said that it would be, then the procedure won't work.
0
 
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.

Sorry
0
 
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:
http://www.experts-exchange.com/Community_Support/

Be sure to give a link back this question:
http://www.experts-exchange.com/Programming/Programming_Languages/Visual_Basic/Q_21127517.html

Regards,

Idle_Mind
0
 
GrahamSkanRetiredCommented:
rkckjk,

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.
0
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