2009-10-16 8 views
0

J'ai besoin d'un peu d'aide à propos d'une confusion que j'ai. depuis que je viens de C# .NET, j'expriais Java pour avoir quelque chose de similaire à C# DateTime. Alors que je parviens à créer une méthode d'assistance pour convertir la représentation de la chaîne de date comme par exemple "2009-10-16 11:14:34" à l'objet date. est ici la méthodeDatetime en java et mappage datetime par défaut en hibernation

public static Date convertToDateTime(String stringDate) { 
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
    Date date; 
    try { 
     date = df.parse(stringDate); 
    } catch(ParseException e){ 
     e.printStackTrace(); 
    } 
    return date; 
} 

maintenant je veux juste persister maintenant (je veux dire maintenant ce jour, comme la date réelle) comme une nouvelle date() et ont cette date dans la base de données ont la même représentation yyyy-MM-dd HH: mm: s. À moins que je ne reçoive quelque chose de fondamental

Puisque j'utilise hibernate, est-ce dû au fichier de mappage? Si oui, j'ai 2 questions 1 Comment faire pour mapper ma propriété de sorte que New Date sera persité dans ce format aaaa-MM-jj HH: mm: s 2 Comment avoir un mappage datetime par défaut, donc si la propriété est nulle sera toujours persited dans le aAAA-mM-jJ HH: mm: format de Merci d'avoir lu

+0

Quel type champ est le champ dans la base de données? Généralement, vous auriez un champ Date dans la base de données et aucun format spécifique ne lui serait associé. – tschaible

+0

c'est un champ de date en ce moment.Mais que pensez-vous de la sql-type que sfussenegger suggéré –

Répondre

1

vous ne voulez pas que vos dates sont stockées dans tout format, vous les voulez être stockés comme une date.

Cette définition cartographie pourrait travail (pas sûr de la partie default=now()):

<property name="foo" not-null="false"> 
    <column name="foo" default="now()" not-null="true" sql-type="datetime" /> 
</property> 
+0

salut merci pour la réponse que j'utilise hibernate 3.3.2.GA et je ne sais pas il y a une propriété de type sql et valeur comme datime. J'ai ici l'heure, la date, l'horodatage, le calendrier, calendar_date, et leurs préfixes avec imm_ comme type m –

+0

le type dépend de ce que vous voulez stocker dans la base de données. seulement date, utilisez type = "données, seulement temps, utilisez" time ", utilisez à l'extérieur type =" timestamp " – Salandur

+0

merci beaucoup.En fait, j'ai essayé sfussenegger suggéré et tout fonctionne sauf la valeur par défaut.Salandur le vôtre fonctionne aussi bien maintenant j'ai besoin de savoir comment faire la valeur par défaut –