Java String à la Date de Conversion sous différents formats

J'ai donc String trDate="20120106"; et que vous souhaitez obtenir Date trDate=2012-01-06 et essaie d'utiliser SimpleDateFormat pour changer le motif, mais j'obtiens d'abord à parse la chaîne, puis de générer de la date et puis essayer d'appeler format qui me redonne de la chaîne, mais j'ai besoin de la date, des suggestions, voici le code que j'ai:

String trDate="20120106";    
Date tradeDate = new SimpleDateFormat("yyyymmdd", Locale.ENGLISH).parse(trDate);
String krwtrDate = new SimpleDateFormat("yyyy-mm-dd", Locale.ENGLISH).format(tradeDate);
Date krwTradeDate = new SimpleDateFormat("yyyy-mm-dd", Locale.ENGLISH).parse(krwtrDate);

Ici est question similaire mais il ne répond pas à ma question

J'ai besoin de chaîne convertie en Date format seulement parce que j'ai besoin de passer à une autre fonction qui attend Date object seulement.

Serait vraiment reconnaissant si quelqu'un peut donner l'exemple de la façon d'obtenir date dans yyyy-mm-dd format de string qui est en yyyymmdd format?

  • Un Date objet n'a pas un format. Vous pouvez l'utiliser pour convertir une chaîne de caractères dans n'importe quel format.
  • pouvez-vous me donner un exemple de la façon d'obtenir date dans yyyy-mm-dd format de string qui est en yyyymmdd format
  • Vous avez dit l'autre fonction attend Date objet. Donc, il n'est pas besoin de vous soucier de la façon dont il est transmis. Juste à construire une date (à l'aide de SimpleDateFormat.parse la façon dont vous le faites déjà) et de le transmettre.
  • mais d'autres fonction attend dans le format yyyy-mm-dd et c'est là que cette question vient dans l'image.
  • Pouvez-vous montrer à la signature de l'autre fonction? Si c'est quelque chose comme void doSomethingWithDate(Date someDate), croyez-moi, ça va.
  • Il est exactement comme vous le suggérez, mais ensuite lors de l'affichage, j'aurais Fri Jan 06 00:01:00 EST 2012 mais j'ai besoin de la date de 2012-01-06 à soap call
  • Ensuite, vous devez le faire à l'intérieur de cette méthode. Vous devez les convertir en entrant Date objet dans un String et passer à l'appel soap. Je suppose que vous savez déjà comment convertir Date à String?
  • Date.toString(date) est ce que je voudrais faire pour obtenir une chaîne de date
  • Pas de. Vous ne String krwtrDate = new SimpleDateFormat("yyyy-mm-dd", Locale.ENGLISH).format(someDate); là.
  • La raison que Date.toString(date) est un mauvais choix est parce qu'il utilise la mise en forme par défaut pour les paramètres régionaux actuels et le fuseau horaire du système d'exploitation. Cela ajoute en général dans les heures, les minutes et les secondes, le fuseau horaire code, ne fuseau horaire décalage de l'heure. En bref, c'est rarement met la date dans le format que vous voulez vraiment. Si vous souhaitez un format particulier, vous êtes à la mise en forme correctement dans le code ci-dessus, mais si l'API prend un Date objet, vous ne pouvez pas passer à un String, afin de ne pas la formater. Mise en forme et l'analyse est Date à String de conversion, pas Date de configuration.

InformationsquelleAutor Rachel | 2012-04-20