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-Key: 52458

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

Printed on: April 25, 2024 at 19:04 o'clock

Member: AndreasHoster
AndreasHoster Feb 23, 2007 at 10:28:15 (UTC)
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.
Mitglied: 15098
15098 Feb 23, 2007 at 10:33:52 (UTC)
Goto Top
Das Problem ist dass

Date date = new Date();

einen Parameter haben will daraus folgt das ich das Programm nicht ausführen kann!
Member: AndreasHoster
AndreasHoster Feb 23, 2007 at 12:12:36 (UTC)
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.
Member: filippg
filippg Feb 23, 2007 at 12:19:18 (UTC)
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
Member: AndreasHoster
AndreasHoster Feb 23, 2007 at 13:05:06 (UTC)
Goto Top
Nein, darf man in Java nicht weglassen und mein Beispielprogramm hat kompiliert und ist gelaufen.
Also definitiv syntaktisch richtig.
Member: oberfranke
oberfranke Oct 18, 2007 at 16:28:45 (UTC)
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
Member: oberfranke
oberfranke Oct 18, 2007 at 16:29:15 (UTC)
Goto Top
sorry - ich hab den Beitrag 2x gesendet (Inhalt wurde gelöscht)