0

这似乎是一个非常基本的问题,但它一直困扰着我很长一段时间。我正在尝试在我的控制器中设置一种根据该时间显示特定日期时间的方法。例如,我想要显示的时间值将10:00 AM来自 value 10:00:00。我似乎无法正确格式化时间,以便它可以以那种形式显示。这是我当前的代码,该值将通过:

    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>"
            }

        }

    }

我想获取该值numberDay.start_time并以该格式显示它。10:00:0010:00 AM. 由于我目前没有想法,因此最好的方法是什么。

4

1 回答 1

1

将时间解析为日期对象,然后将其转换回所需格式的字符串。例如:

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'

日期格式字符串与 JavaSimpleDateFormat类使用的相同。

于 2013-05-15T21:24:46.920 回答