You are not logged in.

  • Login

1

Wednesday, March 11th 2009, 6:18pm

Java neues DAtum aus long-Wert

Moin,

komm grad nicht weiter. ich habe ein Longwert =1236325178 aus dem ein Datum erzeugt werden sollte.
Es wird aber ein falsches Datum erzeugt.

Java Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
Date the_date = new Date(int_dat*1000);
	int mon =the_date.getMonth()+1;
	int tag = the_date.getDate();
	int jahr = the_date.getYear();
	int std = the_date.getHours();
	int min = the_date.getMinutes();
 
String mon =( mon<10 ? "0" :"")+mon;
	String tag = ( tag<10 ? "0" :"")+tag;
	String std = ( std<10 ? "0" :"")+std;
	String min = ( min<10 ? "0" :"")+min;
String datum = jahr + "-" + mon + "-" + tag + " "+ std + ":" + min;

das ganze liefert mir 24.12.1969 19:16:36

sollte aber 06.03.200908:39
das ganze habe ich mit JS überprüft

JavaScript Code

1
2
3
4
5
6
7
8
function wt(_){
	var C=new Date(parseInt(_)*1000),B=C.getMonth()+1,$=C.getDate(),E=C.getHours(),D=C.getMinutes();
	var y=C.getFullYear();
	B=(B<10?"0":"")+B;
	$=($<10?"0":"")+$;
	E=(E<10?"0":"")+E;
	D=(D<10?"0":"")+D;
	var A=y+"-"+B+"-"+$+" "+E+":"+D + " ";wr(A)};


seh da grad nicht mein fehler :huh:

2

Wednesday, March 11th 2009, 6:28pm

public Date(long date)
Erzeugt ein neues Date-Objekt, das mit dem long-Wert date initialisiert wird. date bezeichnet hierbei die Anzahl an Millisekunden, die seit dem 01.01.1970, 00.00 Uhr vergangen sind.

Quelle:
http://www.dpunkt.de/java/Referenz/Das_P…va.util/16.html

3

Wednesday, March 11th 2009, 6:33pm

public Date(long date)
Erzeugt ein neues Date-Objekt, das mit dem long-Wert date initialisiert wird. date bezeichnet hierbei die Anzahl an Millisekunden, die seit dem 01.01.1970, 00.00 Uhr vergangen sind.

Quelle:
http://www.dpunkt.de/java/Referenz/Das_P…va.util/16.html


das weiss ich ja auch, nur es erzeugt was falsches ;)

4

Wednesday, March 11th 2009, 6:48pm

Ist dir schon aufgefallen, dass die Methoden die du verwenden willst alle deprecated sind?
Was du willst kann die Klasse GregorianCalendar:
http://java.sun.com/javase/6/docs/api/ja…anCalendar.html

5

Wednesday, March 11th 2009, 6:53pm

Ist dir schon aufgefallen, dass die Methoden die du verwenden willst alle deprecated sind?
Was du willst kann die Klasse GregorianCalendar:
http://java.sun.com/javase/6/docs/api/ja…anCalendar.html

eben nicht, wie erzeug ich denn da ein Datum aus long wert?

ob deprecated oder nicht, das ist nicht schlimm, ist nicht wirklich wichtig für meine anwedung

6

Wednesday, March 11th 2009, 6:54pm

setTimeInMillis(long millis)

7

Wednesday, March 11th 2009, 7:19pm

Da liegt das Problem:

Java Quellcode

1
int_dat*1000

Ein Integer mal einem Integer ergibt einen Integer. Da Der Wertebereich nicht aus recht brauchst bekommst du einen Overflow. Erst dann wird der nun falsche int-Wert der Methode übergeben und auf Long gecastet.

Du musst also das casten vorher erledigen:

Java Quellcode

1
(long)int_dat*1000l

Nun sollte es gehen.

Verwende bitte trotzdem GregorianCalendar. Das ist einfach nur richtig so.

8

Wednesday, March 11th 2009, 7:31pm

oh ja :D danke
ich sollte mal ne pause einlegen :wacko:

Similar threads

Social bookmarks