Problema em conversão de hora vraptor 3.2.0 + hibernate 3.6.0

2 respostas
boneazul

Olá pessoal estou tendo problema com algum converter do vraptor

tenho uma entidade que tem um Date como campo mas onde só é guardado a hora

@Temporal(TemporalType.TIME)
private Date horaInicio;

estou utilizando o pacote i10n para os converters padrão

<context-param>
    	<param-name>br.com.caelum.vraptor.packages</param-name>
    	<param-value>br.com.caelum.vraptor.converter.l10n</param-value>
	</context-param>

quando inputo dados do tipo 10:20 no formulario ele solta uma exception de conversão!!!

Não há suporte pra esse tipo de conversão ??? Com o melhor caminho a seguir ??

2 Respostas

Lucas_Cavalcanti

a conversão é apenas para data, por padrão…

o que vc pode fazer é criar um converter próprio:

@Convert(Date.class)
public class TimeConverter implements Converter<Date> {

    public TimeConverter(LocaleBasedDateConverter delegate) {
         this.delegate = delegate;
    }

    public Date convert(String value, Class<? extends Date> type, ResourceBundle bundle) {
        if (value == null || value.equals("")) {
            return null;
        }
        DateFormat format = DateFormat.getTimeInstance();
        try {
            return format.parse(value);
        } catch (ParseException e) {
            return delegate.convert(value, type, bundle);
        }
    }
}

Você pode forçar o DateFormat pra HH:mm se isso não funcionar.

Abraços

G

Java não possui tipo time, apenas um Date que na verdade é datetime.

Acho que o mais elegante é usar o jodatime, assim você pode ter Date, Time e Datetime.

Criado 15 de fevereiro de 2011
Ultima resposta 15 de fev. de 2011
Respostas 2
Participantes 3