Java/Groovy - простое переформатирование даты

Я новичок в разработке Java/Groovy, и у меня есть простая строка, которую я хотел бы переформатировать, однако я получаю ошибку "Unparseable date" при попытке выполнить следующее:

import java.text.SimpleDateFormat 
import java.util.Date

String oldDate
Date date
String newDate 

oldDate = '04-DEC-2012'
date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S").parse(oldDate)
newDate = new SimpleDateFormat("M-d-yyyy").format(date) 

println newDate

Я уверен, что это что-то простое, но решение ускользает от меня. Кто-нибудь может помочь?

4 ответа

Решение

С Groovy вам не нужны включения, и вы можете просто:

String oldDate = '04-DEC-2012'
Date date = Date.parse( 'dd-MMM-yyyy', oldDate )
String newDate = date.format( 'M-d-yyyy' )

println newDate

Печатать:

12-4-2012

Ваш DateFormat шаблон не соответствует введенной вами дате String, Вы могли бы использовать

new SimpleDateFormat("dd-MMM-yyyy")

oldDate не в формате SimpleDateFormat вы используете, чтобы разобрать его.

Попробуйте этот формат: dd-MMM-yyyy - Это соответствует тому, что вы пытаетесь разобрать.

      //Groovy Script

import java.util.Date   
import java.util.TimeZone   
tz = TimeZone.getTimeZone("America/Sao_Paulo")   
def date = new Date()   
def dt = date.format("yyyy-MM-dd HH:mm:ss", timezone=tz)   
println dt //formatado   
println date // formatado porém, horario do Sistema em GMT.
Другие вопросы по тегам