Systeemtijd opvragen in Java

Pagina: 1
Acties:
  • 551 views sinds 30-01-2008
  • Reageer

  • HansH
  • Registratie: Oktober 2000
  • Laatst online: 06:28
Ik moet voor een project de systeemtijd opvragen in Java, is er in de library van Java een methode die dit kan doen of is er een andere manier????

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 12-09 21:31

Janoz

Moderator Devschuur®

!litemod

Kijk eens bij System. Daarnaast zijn er ook allemaal Date achtige classes die zichzelf initialiseren met de systeem tijd.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • HansH
  • Registratie: Oktober 2000
  • Laatst online: 06:28
Ok dan, zal wel ff kijken, thanx...

  • Scorpion
  • Registratie: April 2000
  • Laatst online: 18-01-2024

Scorpion

not to lame to read BitchX.doc

Op woensdag 16 januari 2002 11:13 schreef HansH het volgende:
Ok dan, zal wel ff kijken, thanx...
code:
1
long now = System.currentTimeMillis();

Verwijderd

code:
1
long now = System.currentTimeMillis();
Dat is GEEN slimme oplossing.

Beter:
Als je een Date object aanmaakt met de default constructor, neemt ie de tijd dat ie gealloceerd is. Dus:
code:
1
2
3
import java.util.Date;

Date currentDate = new Date();

Voilá

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op woensdag 16 januari 2002 11:50 schreef ManiaXe het volgende:
Dat is GEEN slimme oplossing.
En waarom niet?

Verwijderd

code:
1
System.currentTimeMillis()

geeft de huidige tijd in Milliseconden weer vanaf 01/01/1970.

Als je de datum en tijd dan als string wilt weergeven, moet je die waarde gaan omrekenen naar jaren, maanden, dagen, uren, minuten en seconden.

Andersom is het simpel om van een Date een long te maken, door dit te doen:
code:
1
long mSecs = currentDate.getTime();

  • Tomatrix
  • Registratie: Juni 1999
  • Laatst online: 27-02-2025
Op woensdag 16 januari 2002 11:50 schreef ManiaXe het volgende:

[..]

Dat is GEEN slimme oplossing.
Ligt eraan wat je ermee wilt he, als je even een tijdsinterval in milliseconden wilt meten is het WEL een slimme oplossing.

  • Scorpion
  • Registratie: April 2000
  • Laatst online: 18-01-2024

Scorpion

not to lame to read BitchX.doc

Op woensdag 16 januari 2002 14:50 schreef Tomatrix het volgende:

[..]

Ligt eraan wat je ermee wilt he, als je even een tijdsinterval in milliseconden wilt meten is het WEL een slimme oplossing.
en ik nam aan dat het hiervoor ook gebruikt zou worden.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op woensdag 16 januari 2002 14:50 schreef Tomatrix het volgende:
Ligt eraan wat je ermee wilt he, als je even een tijdsinterval in milliseconden wilt meten is het WEL een slimme oplossing.
My point exactly ;)

Beide kunnen handig zijn.

  • The - DDD
  • Registratie: Januari 2000
  • Laatst online: 03-09 16:40
Op woensdag 16 januari 2002 13:38 schreef ManiaXe het volgende:
code:
1
System.currentTimeMillis()

geeft de huidige tijd in Milliseconden weer vanaf 01/01/1970.

Als je de datum en tijd dan als string wilt weergeven, moet je die waarde gaan omrekenen naar jaren, maanden, dagen, uren, minuten en seconden.

Andersom is het simpel om van een Date een long te maken, door dit te doen:
code:
1
long mSecs = currentDate.getTime();
Laat het nou net zo zijn dat al die date classes de tijd intern op exact die manier weergeven. En je kan heel eenvoudig op basis van een miliseconde waarde bepalen wat de huidige datum is. Kwestie van het juiste object en de juiste constructor.

In een project heb ik een keer data opgeslagen als long waarden, omdat ik al het "gedoe" met die SQL date strings wou vermijden, het moest protable zijn over databases, dus dan wil je niet te maken krijgen met gedoe over date strings. Ik stopte die long waarde in het juiste object en floep je krijgt er de juiste string waarde uit, die altijd gelijk is en naar de database geen conflicten kan veroorzaken, want voor opslag pakte ik juist weer die long waarde eruit.

  • reinouts
  • Registratie: Januari 2000
  • Laatst online: 14-09 06:55
en met een SimpleDateFormat kun je het weergeven precies zoals je zelf leuk vindt... :z

Verwijderd

sorry, geen idee... |:(

Verwijderd

Het kan idd op beide manieren, en ik was er idd vanuit gegaan dat het om een te tonen datum ging.

Als het puur om data opslag gaat, is System.currentTimeMillis() handiger, maar als het puur gaat om het aan de gebruiker tonen van een string, is de oplossing met een Date object minder omslachtig.

Zo beter? :)

  • Bobco
  • Registratie: Januari 2001
  • Laatst online: 30-10-2023

Bobco

I used to dream about Verona.

Op donderdag 17 januari 2002 10:30 schreef ManiaXe het volgende:
Als het puur om data opslag gaat, is System.currentTimeMillis() handiger, maar als het puur gaat om het aan de gebruiker tonen van een string, is de oplossing met een Date object minder omslachtig.
En als je veel wilt rekenen met datums dan is er nog mijn favoriet: java.util.GregorianCalendar. Het kost wat leeswerk, maar je kunt er dan ook behoorlijk wat mee...

With the light in our eyes, it's hard to see.


  • HansH
  • Registratie: Oktober 2000
  • Laatst online: 06:28
Het is de bedoeling dat ik de systeemtijd + datum kan opvragen.
Het doel van het project is dat ik doormiddel van een webpagina met java servlets een planning voor productie kan invoeren en wijzigen.

  • Bobco
  • Registratie: Januari 2001
  • Laatst online: 30-10-2023

Bobco

I used to dream about Verona.

Op donderdag 17 januari 2002 11:51 schreef HansH het volgende:
Het is de bedoeling dat ik de systeemtijd + datum kan opvragen. Het doel van het project is dat ik doormiddel van een webpagina met java servlets een planning voor productie kan invoeren en wijzigen.
In dat geval zou ik zeker met Date en/of GregorianCalendar objecten gaan werken. Je kunt dan ook heel gemakkelijk de gebruiker een lijstje van geldige plandata geven waaruit gekozen kan worden. Datums parsen is niet heel erg leuk....

With the light in our eyes, it's hard to see.


  • HansH
  • Registratie: Oktober 2000
  • Laatst online: 06:28
Heb et voorelkaar :)

Ik wilde het volgende format hebben: yyyy-mm-dd. En na een beetje rondsnuffelen op java.sun.com heb ik het volgende gedaan:
code:
1
2
3
4
5
6
import java.util.Date;
import java.text.SimpleDateFormat;

SimpleDateFormat formatter = new SimpleDateFormat ("yyyy-MM-dd"); 
Date currentDate = new Date();
String dateString = formatter.format(currentDate);

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Date is vrijwel geheel deprecated, ik zou zeker kijken naar Calendar etc ;)

  • HansH
  • Registratie: Oktober 2000
  • Laatst online: 06:28
Zit nu wel met het probleem dat ik moet rekenen met de datum. Zo moet ik weer kunnen geven wanneer een bepaald artikel klaar is; dit te doen door systeemdatum op te vragen en daar een productietijd bij op te tellen om zo tot een datum te komen waarop het desbetreffende artikel gereed is.

Met welke methode is het makkelijkst te rekenen?? :? :?

  • The - DDD
  • Registratie: Januari 2000
  • Laatst online: 03-09 16:40
Op maandag 21 januari 2002 15:22 schreef HansH het volgende:
Zit nu wel met het probleem dat ik moet rekenen met de datum. Zo moet ik weer kunnen geven wanneer een bepaald artikel klaar is; dit te doen door systeemdatum op te vragen en daar een productietijd bij op te tellen om zo tot een datum te komen waarop het desbetreffende artikel gereed is.

Met welke methode is het makkelijkst te rekenen?? :? :?
Sorry hoor, maar kijk verdorie is in de Java API docs. Staat het letterlijk in.

Calendar bevat een methode:
add(int field, int amount)

met field geef je aan wat voor type je er bij op wil tellen, milliseconden, seconden, minuten, uren, dagen, etc...

Maakt dus geen drol uit of de productie tijd gedefinieerd is in wat voor formaat dan ook. Let wel even op bij het weekend, mag er dan ook geproduceerd worden?

Nu je volgende vraag:
Ja, maar wat als het 31 januari is en ik tel er een dag bij op?
-public void setLenient(boolean lenient)

  • HansH
  • Registratie: Oktober 2000
  • Laatst online: 06:28
Sorry hoor, maar kijk verdorie is in de Java API docs. Staat het letterlijk in.
Hoezo???? :?

Ik kan de vraag toch gewoon stellen...

  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 12-09 21:31

Janoz

Moderator Devschuur®

!litemod

Op dinsdag 22 januari 2002 09:48 schreef HansH het volgende:

[..]

Hoezo???? :?

Ik kan de vraag toch gewoon stellen...
Ja, maar je kunt ook een bookmark maken van deze site (Desnoods download je hem zodat kje hem lokaal kan raadplegen) en drukt in het frame links onder op de class waar je mee werkt, en je ziet precies welke methodes er zijn, wat ze doen, en welke gegevens ze nodig hebben.

Werkt een stuk sneller dan hier telkens vragen....

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • The - DDD
  • Registratie: Januari 2000
  • Laatst online: 03-09 16:40
Op dinsdag 22 januari 2002 09:48 schreef HansH het volgende:

[..]

Hoezo???? :?

Ik kan de vraag toch gewoon stellen...
Ik geef toch ook gewoon antwoord.. :P ;)

  • HansH
  • Registratie: Oktober 2000
  • Laatst online: 06:28
Op dinsdag 22 januari 2002 12:46 schreef The - DDD het volgende:

[..]

Ik geef toch ook gewoon antwoord.. :P ;)
Ik zie het. :)
in ieder geval heb ik het nu voorelkaar; heb nu gewerkt met GregorianCalendar en met add(int field, int amount) om bewerkingen uit te voeren op de datum. :z :z
Pagina: 1