Ausgabe in .CSV Datei wird Timestamp nicht richtig angezeigt

Shortyyyy

Grünschnabel
Hallo Profis

habe folgendes Problem.
Ich möchte ein paar Daten in eine .CSV Datei schreiben, jedoch wird mir der Timestamp nicht richtig angezeigt. Nur vereinzelt wird die Zeit richtig angezeigt. Mir geht es daraum das ich die ms sehen möchte. Hab mal ein Bild hochgeladen wie die Ausgabe ist
8h7c-hg.jpg


Also eigentlich liegt es nur an Exel oder ich habe es nicht richtig formatiert, denn wenn ich es als .txt Datei ausgebe ist alles richtig. Also nur Exel wandelt mir die Zeit falsch um.

Bin ich da schon richtig der Annahme das wenn ich ";" mache, dass es mir dann denn Wert in eine neu Spalte schreibt.

Hier mal der Quellcode
Code:
	String myString;
	BufferedWriter out;
	boolean bed = true;
	String path = "TestLogger.csv";
.
.
.
out = new BufferedWriter(new FileWriter(path));
		
		// Send the reset command
		int a = 0, b = 5;
		for (a = 0; a < b; a++) {

		send("0104");
		expect("OK");
		myString = Integer.toString(getItem());
		out.append(myString + ";" + new java.sql.Timestamp(new java.util.Date().getTime()) + ";");
		send("0105");
		expect("OK");
		myString = Integer.toString(getItem());
		out.append(myString + ";" + new java.sql.Timestamp(new java.util.Date().getTime()) + ";");
		send("010C");
		expect("OK");
		myString = Integer.toString(getItem());
		out.append(myString + ";" + new java.sql.Timestamp(new java.util.Date().getTime()) + ";");
		send("010D");
		expect("OK");
		myString = Integer.toString(getItem());
        out.append(myString + ";" + new java.sql.Timestamp(new java.util.Date().getTime()) + "\n");
		}
		out.close();

Für eine Hilfe wie ich es richtig darstellen kann, wäre ich euch sehr dankbar.

MFG
 
Das ist aber doch kein Java-Problem an sich.. Was Excel so mit den Daten anstellt ist eher ein Excel-Problem.

CSV heißt Comma-Separated-Value und Excel sieht ein ; als Separator an.

Warum machst du aus einem Date ein sql.Timestamp und gibst den aus?

Wenn du ein Datum formatieren möchstest, dann verwende die Klasse DecimalFormat.
 
Also beim Import in Excel kann man jedenfalls den Seperator angeben und das kann ein Komma, Tab, Semikolon oder sonst was sein.
Um Ein Datum zu formatieren würde ich die Klasse SimpleDateFormat benutzen:

Code:
String DATE_FORMAT = "MM/dd/yyyy - HH:mm:ss";
SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);      
System.out.println(sdf.format(new Date()));

Hier noch eine Übersicht über die Parameter, mit denen du das Pattern zusammenbauen kannst:

http://download.oracle.com/javase/1.4.2/docs/api/java/text/SimpleDateFormat.html

Gruß

Sebastian
 
Ersteinmal vielen Dank.

aber ich will ja die Ausgabe auch in ms.

Und in beiden Lösugen werden die ms nicht ausgegeben.

Hab auch schon rausgefunden das es an EXEL und nicht an Java liegt. Aber meine Frage war halt wie ich es richtig bzw anders in Java mache das es mir in Exel richtig ausgegeben wird.
 
Dann gib im Pattern für DecimalFormat mit an, dass du ms möchtest.

Excel tut nach dem Import eigentlich meistens erstmal nichts böses, d.h. du solltest die Möglichkeit haben mittels Formatierung der Spalte das Datumsformat in Excel nochmal so anzugeben, dass dir auch dort ms mit ausgegeben werden.
 
so nach viel rumspielen hab ich es geschafft

PS. es lag nicht an Java. Jeder nur erdenkliche Quellcode für die Timestamps ging, jedoch hat exel immer und immer wieder denn Timestamp formatiert sprich umgewandelt.

Lösung:

war einfach nach dem ";" ein Leerzeichen, also so "; "
Und schon gehts
 
Zurück