Convertir Java Chaîne sql.Timestamp

Ai une Chaîne de venir avec le format: YYYY-MM-DD-HH.MM.SS.NNNNNN L'Horodatage est à venir à partir d'une base de données DB2. J'ai besoin d'analyser en java.sql.D'horodatage et de ne PAS perdre tout precison. Jusqu'à présent, j'ai été incapable de trouver le code existant pour analyser que loin de microsecondes. SimpleDateFormat retourne une Date et une seule analyse à quelques millisecondes. Regardé JodaTime brièvement et de ne pas le voir qui serait le soit.

  • Si le timestamp est livré à partir d'une base de données DB2, pourquoi lisez-vous comme une chaîne de caractères plutôt que de le lire comme un Timestamp directement?
  • L'heure est venue de la base de données et un client est de nous le retourner pour une lecture par clé.
  • Si vous utilisez le timestamp pour une lecture par clé, et vous êtes sans doute d'abord de l'envoyer au client, vous pouvez également envisager de convertir à un long de nanosecondes et de le lire, au lieu d'une chaîne de valeur. c'est à dire envoyer long l = ts.getTime() et puis le lire avec new Timestamp(l). Vous pourriez même sérialiser cette valeur pour économiser de l'espace sur le fil (mais vous perdez de l'homme une précision d'affichage dans ce cas).
  • Que faire si ma chaîne n'est pas dans ce format et plutôt en mm/jj/aaaa hh:mm format. Ce dans ce cas comment faire pour convertir au format d'Horodatage
  • mise à JOUR La java.pack construit en Java 8 poignées de résolution de l'ordre de la nanoseconde. Peut-être plus facile/mieux que de traiter avec java.sql.Horodatage selon votre scénario. Vous pouvez convertir des pour et de java.temps & java.sql.Horodatage ainsi.
InformationsquelleAutor Dan | 2011-10-02