Wie format java.sql.Timestamp(yyyy-MM-dd HH:mm:ss.S) in ein Datum(yyyy-MM-dd HH:mm:ss)
Gut, ich bin mit einem detail mit einer Date
, denn ich bin immer ein Objekt aus meiner Datenbank und in die variable "fecha" (Datum) von demselben Objekt, ich bin immer ein java.sql.Timestamp
, so der formatt ist mit Millisekunden, aber ich will nicht die Millisekunden angezeigt werden. Also muss ich formatt das Datum, ich bekomme aus meiner DB auf einen neuen Termin, der nicht über Millisekunden.
Dies ist das Objekt, Factura:
public class Factura implements java.io.Serializable {
private FacturaId id;
...
private boolean activo;
private Date fecha;
}
In der xml-Datei zugeordnet, die DB habe ich diesen code für die variable "fecha":
<property name="fecha" type="timestamp">
<column length="19" name="fecha" not-null="true"/>
</property>
In der Datenbank, die Spalte ist fecha DATETIME
.
Und wenn ich ein Objekt Factura
aus meiner DB ich bin immer diese Art von Datum 2013-10-10 10:49:29.0
aber ich will es ohne die .0
(Millisekunden).
Habe ich versucht, diese (factura
ist die Factura
Objekt):
try {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date fechaNueva = null;
String fechaStr = factura.getFecha().toString();
int tamaño = fechaStr.length()-2;
fechaStr = fechaStr.substring(0, tamaño); //I get a string without the miliseconds
fechaNueva = format.parse(fechaStr);
} catch(ParseException ex) {
...
}
Aber fechaNueva
ist mir Thu Oct 10 10:49:29 CDT 2013
- und ich will nur 2013-10-10 10:49:29
können Sie mir helfen, bitte?
Vielen Dank im Voraus.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Brauchen Sie nicht zu verwenden, substring, da Ihre
format
nicht halten, dass info.fechaNueva
auf das gleiche Objekt... so etwas wie dieses:SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String fechaStr = "2013-10-10 10:49:29.10000"; Date fechaNueva = format.parse(fechaStr); factura.setFecha(fechaNueva);
Aber nur mitDate fechaNueva = format.parse(fechaStr);
ich habe die falsche formatThu Oct 10 10:49:29 CDT 2013
dass ich nicht wollen...SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.ENGLISH);
? Ich habe versucht, dieLocale.ENGLISH
aber nichts. Wissen Sie, wasLocale
mir helfen könnte? oder, wie formatt, dassdate
haben die formatt ich will? Vielen Dank.String
ist richtig, aber wie ich das richtige format2013-10-10 10:49:29
zu meinem ObjektFactura
alsDate
? das ist das problem:factura.setFecha(fechaNueva);
, was ich zu tun habe, umfechaNueva
haben es formatiert2013-10-10 10:49:29
?Factura
Objekt in einemTableModel
, so dass der Druck an der Säulefecha
dies:Thu Oct 10 10:49:29 CDT 2013
format.parse
verwendet?Ein Datums-Zeit-Objekt ist kein String
Java.sql.Timestamp-Klasse hat kein format. Die toString-Methode generiert eine Zeichenkette mit einem format.
Nicht verschmelzen eines Datums-Zeit-Objekt mit einem String, der darstellen kann, Ihren Wert. Eine Datum-Zeit-Objekts können strings Parsen und generieren von Zeichenfolgen, ist aber nicht selbst ein string.
java.Zeit
Zuerst konvertieren Sie aus dem unruhigen alten legacy-Datum-Zeit-Klassen in java.Zeit-Klassen. Verwenden Sie die neuen Methoden Hinzugefügt, um die alten Klassen.
Verlieren den Bruchteil einer Sekunde, die Sie nicht wollen.
Weisen Sie die Zeitzone einstellen UTC verwendet Sofortige.
Generiert eine Zeichenfolge in der Nähe Ihrer gewünschten Ausgabe. Ersetzen Sie Ihre
T
in der Mitte mit einem RAUM.