#parsing #grails #groovy
#синтаксический анализ #grails #groovy
Вопрос:
Я знал, что на этой странице есть некоторые проблемы, подобные этой, но я не нашел своего ответа, пожалуйста, помогите мне решить это. Я получил:
params.month = JANUARY
params.year = 2014
params.date = 10
Я пытался
def parse = new Date(2014, JANUARY, 10)
print parse(format(yyyy/MM/dd))
Результат:
2014/01/10
но когда я попытался
def parse = new Date(params.year.toInteger(), params.month.toInteger(), params.date.toInteger())
он не может анализировать params.month.toInteger()
Комментарии:
1. ЯНВАРЬ означает месяц ЯНВАРЬ (01)
2. вместо 01 измените его на 1.
Ответ №1:
Не используйте устаревшие конструкторы, такие как Date(year, month, day)
Я рекомендую использовать метод Groovy JDK parse
для создания экземпляра Date.
def yourDateInstance = Date.parse('yyyy/MM/dd, "${params.year}/${params.month}/${params.date}")
Ответ №2:
попробуйте это
def parse = new Date(2014, 0 , 10)
ПРИМЕЧАНИЕ: в Java месяцы начинаются с 0 , 0 = ЯНВАРЬ
И конструктор Date имеет дату подписи (int year, int month, int date), это является причиной исключения, поскольку JANUARY является строкой, поэтому ее нельзя проанализировать в int
Комментарии:
1. Этот конструктор устарел с Java 1.1 (1997!)