2014-02-04 4 views

ответ

1

Предполагая, что вы получили вашу строку, определенную в переменной:

String timeStr = '01:00' 

Самый короткий путь я могу думать о том, будет выглядеть следующим образом:

timeStr[0..1].toInteger() 

Просто для уточнения, выше линии эквивалент:

timeStr.substring(0, 2).toInteger() 

Обратите внимание, что разница между указанием индекса 'to'. С ассортиментом Groovy включительно.

1

Вы можете разобрать, что в Дата использования:

Date.parse('HH:mm', '01:00') 

Если вам нужно что-то добавить на к Date в более позднее время, вы можете сделать:

import groovy.time.* 

String time = '01:00' 

def duration = use(TimeCategory) { 
    Date.parse('HH:mm', time) - Date.parse('HH:mm', '00:00') 
} 

Затем, позже :

use(TimeCategory) { 
    println new Date() + duration 
} 
0
def hours = Date.parse("HH:mm", str).getHours(); 
+0

Вы правы, но почему бы не использовать более короткую нотацию _property_ и тип String вместо GString, например: 'int hours = Date.parse ('HH: mm', str) .hours' – topr

+0

@topr' "HH: mm "' _is_ a String –

+0

@tim_yates Ну технически это правда, пока не будет '$ {выражение}', используемого между кавычками. Но зачем использовать двойные кавычки, где это не нужно? Конечно, речь идет о кодировании в рамках данного проекта. Я считаю, что чистить не использовать двойные кавычки, когда нет необходимости. Например [Инструмент статического анализа CodeNarc имеет правило] (http://codenarc.sourceforge.net/codenarc-rules-unnecessary.html#UnnecessaryGString), который будет нарушен в таком коде. – topr

Смежные вопросы