Acho q a melhor forma de trabalhar com data e hora no Java é utilizando a classe Calendar, mesmo pq se vc precisar validar datas, fazer cálculos entre outros os métodos dessa classe te ajudam muito.
Não vejo nenhuma vantagem em se utilizar String, apenas mais trabalho!
Mas então, e se o sistema usar as datas apenas para pegar a data atual e definir valores de datas digitados pelo usuário, sem nenhuma necessidade (mesmo que futura) de fazer cálculos com elas?
O que estou tendo mais dificuldade é inserir valores com data / hora em campos datetime em banco de dados - usando MS SQL Server no momento.
Não posso opinar a respeito do Joda-time pois nunca utilizei, mas eu nunca tive nenhum problema utilizando Calendar, java.util.Date no java, e timestamp no banco.
Os atributos devem ser do tipo Date (eca!). O Calendar (mais eco ainda!) é para as manipulações de datas. Se puder, use o joda-time para as manipulações, que é bem mais tranquilo de trabalhar.
Infelizmente. a melhor forma de se trabalhar com datas no Java é não usar a API do Java pra isso…
Isso até o Java 8, depois disso a API de data ficará igual ao joda-time :)[/quote]
Espero muito que seja verdade… é tão chato usar APIs de terceiros pra fazer algo que a linguagem deveria prover. Podiam colocar RegExps nativas também no pacote de melhorias (mas aí já é assunto pra outro tópico).