15098
Goto Top

JAVA Systemzeit

Systemzeit von Java immer "1970-01-01"

Hallo Zusammen,

habe ein Probelm mit meinem JAVA Programm.
Habe eine Methode erstellt:

public Date getdate()
{
Date date = new Date(0);
return date;
}

Der Returncode ist immer der "1970-01-01"
Wie kann ich meine aktuelle Systemzeit anzeigen lassen?

Vielen Dank
Grüße aus MUC

Content-ID: 52458

Url: https://administrator.de/contentid/52458

Ausgedruckt am: 23.11.2024 um 07:11 Uhr

AndreasHoster
AndreasHoster 23.02.2007 um 11:28:15 Uhr
Goto Top
Da fällt mir jetzt nur noch RTFM ein.
Die Java Class Doku ist nämlich wirklich gut.
Aus der Doku:

public Date(long date)
Allocates a Date object and initializes it to represent the specified number of milliseconds since the standard base time known as "the epoch", namely January 1, 1970, 00:00:00 GMT.

Parameters:
date - the milliseconds since January 1, 1970, 00:00:00 GMT.

Da Du immer 0 angibst, sind das 0 Millisekunden von 01.01.1970 ab. Es passiert also genau das was Du programmiert hast.

Aber:
public Date()
Allocates a Date object and initializes it so that it represents the time at which it was allocated, measured to the nearest millisecond.

Also mit Date date = new Date(); sollte es tun.
15098
15098 23.02.2007 um 11:33:52 Uhr
Goto Top
Das Problem ist dass

Date date = new Date();

einen Parameter haben will daraus folgt das ich das Programm nicht ausführen kann!
AndreasHoster
AndreasHoster 23.02.2007 um 13:12:36 Uhr
Goto Top
Mein Java kennt den Date Konstruktor ohne Parameter:
public class TestTest {

    public static void main(String args) {

        java.util.Date date = new java.util.Date();
        System.out.println(date.toString());

    }
}
Ergibt als Ausgabe:
Fri Feb 23 13:06:58 CET 2007
Mit import java.util.*; kann man unten auch einfach Date schreiben.

Importierts Du eventuell auch java.sql.* ? Da gibts auch ein Date und zwar eines, welches mindestens ein Parameter im Konstruktor erwartet. Dein Programm versucht also vermutlich ein java.sql.Date anstatt einem java.util.Date anzulegen.
filippg
filippg 23.02.2007 um 13:19:18 Uhr
Goto Top
Hallo,

also laut javadoc besitzt Date einen parameterlosen Konstruktor... Jetzt muss ich sagen, mein letztes Java ist schon so lange her, dass ich nicht mehr weiss, ob es da war (peinlich, peinlich), aber bei irgendeiner Sprache muss man, wenn man den parameterlosen Konstruktor haben will die Klammern ganz weglassen. Probiere also doch mal "Date date = new Date;" Daneben würde ich einen anderen Namen für die Variable empfehlen.

Filipp
AndreasHoster
AndreasHoster 23.02.2007 um 14:05:06 Uhr
Goto Top
Nein, darf man in Java nicht weglassen und mein Beispielprogramm hat kompiliert und ist gelaufen.
Also definitiv syntaktisch richtig.
oberfranke
oberfranke 18.10.2007 um 18:28:45 Uhr
Goto Top
Hi,
ich bin mir nicht sicher, ob ich das Problem verstehe, oder ob es überhaupt eines gibt.

Also (ich spreche von neueren java runtimes - prüfen!):


import java.util.*;
.
.
.
Date xyz = new Date();
System.out.println(""+xyz); ""+ ist wichtig ... erzeugt einen Cast auf String
da println mit Date nichts anfangen kann
.
.

gibt immer die aktuelle Systemzeit aus!

Wenn man sie permanent aktuell anzeigen will, dann muss man einen Thread implementieren.

Schlagwort: myClas implements Runnable

public void run()

usw.

lg
oberfranke
oberfranke 18.10.2007 um 18:29:15 Uhr
Goto Top
sorry - ich hab den Beitrag 2x gesendet (Inhalt wurde gelöscht)