0

これは非常に基本的な質問のように思えるかもしれませんが、かなり長い間私を逃してきました. コントローラーで、その時間に基づいて特定の日の時間を表示する方法を設定しようとしています。たとえば、表示したい時間値は10:00 AMvalue からのものです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 に答える