Temps de réinitialisation partie du Calendrier de l'instance en Java
Il y a le code de Java,qui est exécuté sur 2 environnements différents et insère des enregistrements avec JdbcTemplate
à DB.
Résultats de son fonctionnement sont différents pour les deux envs. En particulier,pour Date
champs.
Sur la première environnement(Oracle XE), il donne un record:
"12/03/2010";191094;"71697211000";3229;880323202;NULL;0;1;0;NULL;0;NULL
Deuxième environnement(Oracle non XE):
"12/03/2010 12:00:00";191094;"71697211000";3229;880323202;NULL;0;1;0;NULL;0;NULL
NLS_DATE_FORMAT(si c'est crucial) pour la première env est DD-MON-RR
,
pour la deuxième env est DD-MON-RRRR
La question est,ce que l'Oracle paramètres peuvent influer sur,la seconde env format de la Date est un autre?
- Il suffit de ne pas stocker/récupérer la partie du temps à DB. Utiliser un
DATE
type de champ, pasTIMESTAMP
ouDATETIME
. - J'utilise champ de type Date dans la DB. Semble, que j'ai misunderstadings avec le client. Dit-il,que 12:00 ne doivent pas être inclus.Mais ce n'est pas affichée avec sélectionnez simplement.elle est affichée,lorsque j'utilise SELECT to_char(a_date, 'DD-mm-aa HH:MI:SS')
Vous devez vous connecter pour publier un commentaire.
doit définir de Calendrier suivant propriétés dans le code Java:
au lieu de:
0
, mais pas pour la liste ci-dessus des champs.Selon la documentation,
HH
se réfère à 12 heures de temps. Le 12 dans le temps de récupération est de 12 à minuit. Ce que vous voulez estHH24
, qui ges-vous un horaire de 24 heures, à partir de 00 à minuit.Si vous ne voulez pas afficher le temps de la partie, de ne pas inclure dans la chaîne de format qui comprend le temps de la partie ("HH:MI:SS").
Vous ai réinitialisé le temps de la partie à minuit, en fait... il n'y a aucun moyen de différencier entre une
Calendar
ouDate
exactement à minuit et unCalendar
ouDate
"sans" une partie du temps - car il n'y a pas de notion deCalendar
/Date
avec seulement une partie de la date.Maintenant, vous pouvez être en mesure d'avoir ce dans la base de données, en fonction de quels types sont disponibles pour vous - mais
java.util.Date
etjava.util.Calendar
représentent toujours des points dans le temps, et pas seulement les dates.La raison pour laquelle il montre 12 au lieu de 00 est parce que vous êtes à l'aide de "HH" au lieu de "HH24", comme par lacqui de réponse. Je suppose que vous n'avez pas vraiment voulez pour voir le temps à tous, comme vous devrez le réinitialiser à minuit...
c.set
appels d'utiliser des valeurs différentes, vous verrez les valeurs appropriées dans votre version mise en forme aussi.Je vous recommande de prolonger l'un de l'Agenda des classes comme ceci:
Instancier de cette façon: