You are not logged in.

wcf.regNote.message

logix

Trainee

  • "logix" started this thread

Posts: 78

  • Send private message

1

Saturday, January 27th 2007, 6:27pm

Systemzeit ändern

Mal ne blöde Frage, aber weiß jemand, wie man mit Java die Systemzeit verändern kann, also auf einen neuen Wert setzten kann? Habe einiges durchsucht aber nichts gefunden. Danke.

Finster

Beginner

Posts: 22

Location: Deutschland

Occupation: Azubi Fachinformatiker für Systemintegration

  • Send private message

2

Sunday, January 28th 2007, 3:58am

hi,

also ich habe keine ahnung von java, aber eigentlich ist so ein "kleiner" vorgang in DOS, also mit einer batch datei machbar...
ist zwar keine antwort auf deine frage aber notfalls könnte man dann ja mit java die batch file aufrufen......

TIME [/T | Zeit]....sich mal die optionen, parameter anschauen.

greetz

Finster
"Solang die Spießer lästern, bin ich auf dem richtigen Weg!"

CiL

Beginner

Posts: 37

  • Send private message

3

Wednesday, February 7th 2007, 3:46pm

Also eigentlich sollte das über die Klasse Date machbar sein, da gibt es zumindest set-Funktionen, aber ob das auf die HW-Clock geschrieben wird weiss ich nicht.

logix

Trainee

  • "logix" started this thread

Posts: 78

  • Send private message

4

Thursday, February 8th 2007, 11:10pm

Quoted

Original von CiL
Also eigentlich sollte das über die Klasse Date machbar sein, da gibt es zumindest set-Funktionen, aber ob das auf die HW-Clock geschrieben wird weiss ich nicht.


Nein, Java selbst hat dafür keinen direkten Befehl, wie ich jetzt weiß. Allerdings lässt sich mit Runtime.exec auch die Systemzeit verändern und das habe ich jetzt als Grundlage für meine Klasse verwendet:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import java.io.*;
import java.util.*;

class TManipulator extends Thread
{
    private int Intervall;
    private int Manipulation;
    private boolean Stop = false;

    public TManipulator(int Intervall, int Manipulation)
    {
        this.Intervall = Intervall;
        this.Manipulation = Manipulation;
    }

    public void run()
    {
        Runtime rt = Runtime.getRuntime();
        GregorianCalendar cal = new GregorianCalendar();
        long MillisNeu;
        while (!Stop)
        {
            try {
                MillisNeu = System.currentTimeMillis() - Manipulation;
                cal.setTimeInMillis(MillisNeu);
                rt.exec("cmd.exe /C time " + cal.get(Calendar.HOUR_OF_DAY) + "." + cal.get(Calendar.MINUTE) + "." + cal.get(Calendar.SECOND) + "." + cal.get(Calendar.MILLISECOND) / 10);
            }
            catch(IOException ex) {
                Stop = true;
            }
            try {
                sleep(Intervall);
            }
            catch (InterruptedException ex) {
                // Nichts
            }
        }
    }
    
    public void setStop(boolean Stop) {
        this.Stop = Stop;
    }
}


Dieser Thread - wenn er einmal gestartet ist - setzt in einem kontinuierlichen Intervall die Systemzeit zurück. Allerdings entsteht einen Ungenauigkeit dadurch, dass die Millisekunden zwar mit dem Time Befehl übergeben werden können, diese aber nicht eingestellt werden.

wcf.user.socialbookmarks.titel