SimpleDateFormat la production d'une fausse date de temps lors de l'analyse “AAAA-MM-jj HH:mm”

Je suis en train d'analyser un String (YYYY-MM-dd HH:mm) à Date, cependant l'obtention d'une fausse date que prévu.

CODE:

Date newDate = null;
String dateTime = "2013-03-18 08:30";
SimpleDateFormat df = new SimpleDateFormat("YYYY-MM-dd HH:mm", Locale.ENGLISH);
df.setLenient(false);
try {
    newDate = df.parse(dateTime);
} catch (ParseException e) {
    throw new InvalidInputException("Invalid date input.");
}

Produit:

Dim Déc 30 08:30:00 HNE 2012 (mauvais)

J'ai essayé de réglage Indulgent mais pas de chance.

Mise à jour

Grâce Sudhanshu pour la réponse, cela m'a aidé à résoudre la Java de conversion. Quand j'ai entrez la date renvoyée à partir du code ci-dessus dans la base de données, je suis à la date de l'obtention correctement, mais le temps est toujours 00:00.

ps.setDate(3, new java.sql.Date(app.getDate().getTime()));
Pour la mise à jour, java.sql.Date est pour un jour seulement, pour le type de données de date de SQL. À partir de la documentation: “Pour se conformer à la définition de SQL DATE, l'ordre de la milliseconde valeurs enveloppé par un java.sql.Date d'instance doit être 'normalisé' les heures, les minutes, les secondes et les millisecondes à zéro dans le fuseau horaire particulier avec lequel l'instance est associée.”

OriginalL'auteur Sas | 2013-04-10