PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : "timestamp" in Java für Bestimmtes Datum und Uhrzeit


ca | Blade-IV
2004-11-23, 08:43:03
hu,


ich bin grad am grübeln wie man im Java einen "timestamp" anlegt für ein belibiges Datum mit beliebiger Uhrzeit.

Bzw. es muss jeden Tag um 0:0:0 Uhr am X:X:X Datum ein "timestamp" angelegt werden...

naja und is ja ned ganz sooooo einfach wie im PHP :D

mfg,Alex.R.

HellHorse
2004-11-23, 09:59:53
Wie dir bereits aufgefallen ist, java.util.Date suckt und zwar hart. Das wird auch von Sun nicht bestritten.

Du musst mit Calendar arbeiten.

Calendar calendar = Calendar.getInstance();
calendar.set(2004, 11, 23, 0, 0, 0);
Date timestamp = calendar.getTime();


Wenn du was intuitiveres willst:
Joda Time (http://joda-time.sourceforge.net/index.html)

ca | Blade-IV
2004-11-23, 11:43:12
hu,

hat sich erledigt habens mit:



//timestamp von heute 0:00:00
DateFormat datum = new SimpleDateFormat("yyyy-MM-dd");
String datum_2=datum.format(new java.util.Date())+" 0:0:0";
java.sql.Timestamp ts = java.sql.Timestamp.valueOf(datum_2);
long tag=ts.getTime()/1000;


trotzdem thx :)

mfg,Alex.R.

HellHorse
2004-11-23, 12:38:18
Was willst du eigentlich genau? Ein java.sql.Timestamp für einen bel Tag um 0 Uhr oder einen speziell formatierten String.

Wenn du einen java.sql.Timestamp willst, ist der Umweg über den formatierten String imo hässlich und wenn du den formatierten String willst, ist es der Umweg über das java.sql.Timestamp den ich hässlich finde.

Um ein java.sql.Timestamp zu erhalten, würde ich etwa so was machen.

public static Timestamp getTimestamp(int year, int moth, int dayInMonth) {
Calendar calendar = Calendar.getInstance();
calendar.set(year, moth, dayInMonth, 0, 0, 0);
calendar.set(Calendar.MILLISECOND, 0); //hatte ich oben vergessen
return new Timestamp(calendar.getTimeInMillis());
}

Ev. den Calendar als Klassenvariable.

Pinoccio
2004-11-23, 12:43:09
Was willst du eigentlich genau?

public static Timestamp getTimestamp(int year, int moth, int dayInMonth) {
Calendar calendar = Calendar.getInstance();
calendar.set(year, month, dayInMonth, 0, 0, 0); // ;-)
calendar.set(Calendar.MILLISECOND, 0); //hatte ich oben vergessen
return new Timestamp(calendar.getTimeInMillis());
}

Wozu soll der Timestamp gut sein, dh, was willst du später damit machen? Habe da echt keine Vorstellung von.

mfg Sebastian

HellHorse
2004-11-23, 13:01:58
Wozu soll der Timestamp gut sein, dh, was willst du später damit machen? Habe da echt keine Vorstellung von.

mfg Sebastian
In eine DB schreiben. Darum auch java.sql.Timestamp

Pinoccio
2004-11-23, 13:39:12
In eine DB schreiben. Darum auch java.sql.Timestamp;-P
Hatte das nicht gesehen, gibt ja schließlich auch noch java.security.Timestamp (http://java.sun.com/j2se/1.5.0/docs/api/index.html?java/security/Timestamp.html)!

mfg Sebastian

ca | Blade-IV
2004-11-23, 15:03:26
hu,

naja ich brauchte das nur kurz um etwas zu debugen... wird im laufe der woche wieder "entfernt" hatte nur ein "problem" mit dem auslesen der erfassten zeit (siehe weiter unten). Weil es mehrere einträge für einen Tag gab, bis zu 4 (max. 5), und das auslesen aus der db nicht so recht wollte... hat sich aber erledigt :)

//ich bin grad hauptsächlich mit dem WI beschäftigt, die Java Crew sitzt 2 PC's weiter... hatte vorher nur in deren code bissel rumgepfuscht :D

thx euch beiden :)


// aus dem thread was progt ihr gerade....

hu,

ein ZeiterfassungsSystem bei dem die Zeit erfasssung über den Biometrischen Abdruck des Fingers erfolgt, gestützt durch ein komfortables Webinterface zur Auswertung der Arbeitszeit und das die komplette Urlaubs, Userverwaltung, Sondertageverwaltung, Krankheitsverwaltung usw.übernimmt.

sehr interessantes Projekt

(meinem kentniss stand nach ist es sogar weltweit einzigartig, zumindest mal in Deutschland, an Zeiterfassung über Biometrie hat wohl noch keiner gedacht... naja kommt auch bissel teuer )

//Java
//MySQL
//PHP

unterstützt und gesponsert von Siemens Security Systems

Momentan leider nur als Projektarbeit.

//

ethrandil
2004-11-23, 15:47:27
//MySQL
//PHP
Hach... und dann noch alles hochverfügbar und per Ethernet vernetzt...


Da kann man ja auch Lochkarten nehmen (von der Sicherheit) ;-)

- Eth

Pinoccio
2004-11-23, 16:35:38
unterstützt und gesponsert von Siemens Security Systems

Momentan leider nur als Projektarbeit.
Das heißt Uni/FH? Wo denn?

mfg Sebastian

ca | Blade-IV
2004-11-23, 17:15:31
hu,

ne, IT-SE Azb. (leider ;)) :D

als Projektarbeit nur weil sich die Gewerkschaft und der Betrieb noch nicht über eine eventuelle einführung geeinigt haben... zwecks sicherheit, datenschutz blabla....

würde in der ersten instanz ~210 Leute Betreffen, is allerdings kaum finanzierbar da ein derartiges Terminal zur Biometrischen erfassung des Fingerabdrucks rund 2000€+ kosten würde.

Zusätzlich sind diese Terminals auch nicht für eine derartige anwendung konzipiert, eigentlich ist das zeugs nur für Zugangskontrollen bei Bundeswehr usw... wo es auf absolute sicherheit ankommt...

wenn es jemand interessiert kann ich morgen oder am donnerstag ma paar bilder online stellen :D

mfg,Alex.R.

ca | Blade-IV
2004-11-23, 17:29:18
Hach... und dann noch alles hochverfügbar und per Ethernet vernetzt...


Da kann man ja auch Lochkarten nehmen (von der Sicherheit) ;-)

- Eth

hmmm lochkarten warn auch im gespräch :D;)

nene passt schon, fingerabdrücke und ähnliche andere biometrische daten werden nicht übers netz übertragen lediglich eine zugehörige id :) und ansonsten ist das schon "halbwegs" :rolleyes: sicher.

is ja atm eh noch im entwicklungsstadium :)

mfg,Alex.R.