thehoule64
thehoule64

Reputation: 1859

Formatting Time

This may seem like an extremely basic question but it has been eluding me for quite some time. I am trying to setup, in my controller, a way to display the time for a specific day based on that time. The time value for example I would want to display would be 10:00 AM from the value 10:00:00. I cannot seem to format the time correctly so that it can display it in that form. Here is my current code that the value will pass through:

    def dayMap = new JSONArray()
    daysofWeek.each{last ->
        def testjsonObject = new JSONObject()
        c.setTime(last.date)
        int test = c.get(Calendar.DAY_OF_WEEK)
        testjsonObject.put('dayofweekNumber', test)
        testjsonObject.put('start_time', last.start_time)
        testjsonObject.put('end_time', last.end_time)
        dayMap.add(testjsonObject)
    }

    def weekStartTimeString = ""
    def weekEndTimeString = ""


    List finalList = []
    dayMap.each{numberDay ->
        if(numberDay.dayofweekNumber == Calendar.MONDAY){
            if(numberDay.start_time.equals("09:00:00")){
                weekStartTimeString += "<option value='09:00:00' selected>9:00 AM</option>"
                println(numberDay)
            }
            else{
                weekStartTimeString += "<option value='numberDay.start_time' selected>"
            }

        }

    }

I would like to take the value numberDay.start_time and display it in that format. 10:00:00 to 10:00 AM. What is the best way of doing this as I am currently out of ideas.

Upvotes: 0

Views: 1483

Answers (1)

ataylor
ataylor

Reputation: 66059

Parse the time into a date object, then convert it back to a string in the format you want. For example:

def start_date = '10:00:00'
assert Date.parse('HH:mm:ss', start_date).format('hh:mm aa') == '10:00 AM'
start_date = '23:59:59'
assert Date.parse('HH:mm:ss', start_date).format('hh:mm aa') == '11:59 PM'

The date format strings are the same ones used by the Java SimpleDateFormat class.

Upvotes: 1

Related Questions