Campos date e time
25/08/2010 00:00
0
Quando estou usando a propriedade definida no modelo, o campo date me parece como java.sql.Timestamp.
Quando crio uma variável do tipo Date, me parece como java.util.Date.

Estou confuso aqui. Como trabalhar com datas no grails?
Conhecem alguma documentação detalhada sobre datas?

Valeu.
Tags: Grails


0
O hibernate Mapea para o Banco a classe util.Date para sql.timestamp

o sql.timestamp é usado apenas na parte de comunicação com o banco.

use sempre util.Date para atributos das entidades relacionado a tempo ou data.
25/08/2010 00:00


0
Os campos que possuem somente hora também deve ser declarados como Date ?
25/08/2010 00:00


0
Essa é uma deficiencia muito criticada na API padrão do Java, não tem classes pra representar apenas data ou apenas hora. Por isso fizeram o projeto JodaTime, e tem um plugin do Grails pra usar as classes do JodaTime nas classes de domain.

<!-- m --><a class="postlink" href="http://www.grails.org/plugin/joda-time">http://www.grails.org/plugin/joda-time</a><!-- m -->
25/08/2010 00:00


0
Acho que vou tentar esse plugin porque me deparei com muitos problemas aqui.

Obrigado.
25/08/2010 00:00


0
Ola larini...

Já passei por esse problema, eu precisava de um campo apenas time (hora), pesquisei e encontrei o plugin JodaTime, dá uma olhada nesse tópico <!-- l --><a class="postlink-local" href="http://www.grailsbrasil.com/viewtopic.php?f=1&amp;t=1060">viewtopic.php?f=1&amp;t=1060</a><!-- l -->

Mas depois refinei um pouco a solução, eu precisava de um campo textField comum onde adicionaria um horário, ex: 11:30, ai resolvi colocar uma validação com Expressões Regulares, segue a solução que encontrei.

import java.util.regex.Matcher

class Trip {
// hh&#58;mm
String departureTime
// dd/MM/yyyy hh&#58;mm
String departure

static constraints = {
departureTime(validator&#58; {
def pattern = ~/^([0-1]\d|2[0-3])&#58;[0-5]\d$/
if (!pattern.matcher(it).matches()) return ['hora invalida']
})
departure(validator&#58; {
def pattern = ~/^((0[1-9]|[12]\d)\/(0[1-9]|1[0-2])|30\/(0[13-9]|1[0-2])|31\/(0[13578]|1[02]))\/\d{2}\s([0-1]\d|2[0-3])&#58;[0-5]\d$/
if (!pattern.matcher(it).matches()) return ['hora invalida']
})
}

String toString() {
&quot;${departure[9..13]}&quot;
}
}


Neste exemplo o campo departureTime é apenas hora e o campo departure é data e hora.

Espero ter ajudado...
27/08/2010 00:00



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto