这可能看起来像一个非常基本的问题,但它已经躲过了我很长一段时间。我试图在我的控制器中设置一种基于该时间显示特定日期的方法。例如,我希望显示的时间值为值10:00 AM
中的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:00
到10:00 AM
。这样做的最佳方式是什么,因为我目前没有想法。
答案 0 :(得分: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'
日期格式字符串与Java SimpleDateFormat
类使用的字符串相同。