Date Object mit Millisekunden Ausgabe

Hallo,

ich konstruiere mit einem SimpleDateFormat Objekt ein Datum, welches aus einem Datum und einem Zeitpunkt besteht. Nun stoße ich aber an die Grenzen der Date Klasse, da ich zusätzlich die Millisekunden des Zeitpunktes abspeichern und später ausgeben möchte.

Hier mein Code Beispiel:

Java:
		String dateString = "20130101140000";
		DateFormat dateFormatter = new SimpleDateFormat("yyyyMMddHHmmss");
		dateFormatter.setTimeZone(TimeZone.getDefault());
		Date date = null;

		try {
			date = dateFormatter.parse(dateString);
			
		} catch (ParseException e) {
			e.printStackTrace();
		}

Meine Frage ist nun wie ich das realisieren kann, da die Klasse Date das nicht vorgesehen hat. Gibt es dazu schon andere Klassen die das realisieren oder muss ich mir eine eigene Klasse basteln die zusätzlich Millisekunden speichert?

Vielen Dank im Voraus.

Bertold B.
 
Hey, was meinst du mit Fehler?

Ich möchte meine Ausgabe des Date Objektes lediglich um die Millisekunden erweitern, jedoch kann das die Date Klasse nicht.

Jetzt war meine Frage, ob es andere Klasse gibt die das schon realisieren oder ob ich eine eigene "Date" Klasse erstellen muss die zusätzlich Millisekunden betrachtet.
 
Woher beziehst du so falsche Aussagen?

Aus der javadoc zu Date
The class Date represents a specific instant in time, with millisecond precision.

Ja gut Millisekunden Präzision, aber ich kann der Date Klasse keine Millisekunden übergeben, die diese abspeichert.

Oder wenn doch kannst du mein Beispiel erweitern das ich meine String "dateString" um drei Millisekunden erweitere und diese in einem Date Objekt abspeichere und dann später auch ausgeben kann?
 
Java:
	@Test
	public void test() {
		String dateString = "20131106140752554";
		DateFormat dateFormatter = new SimpleDateFormat("yyyyMMddHHmmssSSS");
		dateFormatter.setTimeZone(TimeZone.getDefault());
		Date date = null;

		try {
			date = dateFormatter.parse(dateString);
			assertEquals("20131106140752554", dateFormatter.format(date));
		} catch (ParseException e) {
			e.printStackTrace();
		}
	}
 
Okay, wie kann ich dann die Ausgabe von dem Date Objekt dazu bringen mir die Millisekunden mitauszugeben?

Wenn ich
Java:
date.toString()
nutze wird mir der Millisekunden Anteil abgeschnitten?
 
Wenn du dir den Code von Date::toString() anschaust, siehst du das das Ausgabe-Format
dieser Angabe emtspricht"EEE MMM dd HH:mm:ss zzz yyyy" und somit gibt das "Datum nur" sekundengenau aus.

Du muss also einen anderes Format angeben
Java:
		Date dt = new Date();
		System.out.println(dt.toString());
		DateFormat dateFormatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss:SSS zzz yyyy");
		System.out.println(dateFormatter.format(dt));
		 dateFormatter = new SimpleDateFormat("yyyyMMddHHmmssSSS");
		System.out.println(dateFormatter.format(dt));
 

Zurück
Oben