Pobierz czas

0

Hej, potrzebuje policzyć jak długo wykonuje się mój program. Czyli chciał bym pobrać czas na początku, na końcu i odjąć to od siebie. Da się jakoś pobrać godzinę w odpowiedniej formie?

0

System.currentTimeMillis()
lub
System.nanoTime()

0

Te dwie metody, które podał Bogdans służą do mierzenia czasu. Uzyskiwane wartości nie mają żadnego odniesienie kalendarzowego (może poza początkiem sesji JVM, jeżeli tak została wykonana implementacja).

Jeżeli jednak potrzebujesz znacznika czasu w odniesieniu do konkretnego dnia, godziny, sekundy itp., to najprostsze, co Cię zainteresuje, to new Date() oraz jej metoda getTime(), która przekształca ten czas na liczbę long reprezentującą liczbę sekund od 01.01.1970 r. Wartość ta jest doskonała jako timestamp dla plików choćby z tego powodu, że w tym samym formacie daje wynik metoda File.lastModified(), którą można też inicjować nowy obiekt Date(). Tak więc działa to dobrze i przenośnie w dwie strony.

0
Olamagato napisał(a)

Te dwie metody, które podał Bogdans służą do mierzenia czasu. Uzyskiwane wartości nie mają żadnego odniesienie kalendarzowego (może poza początkiem sesji JVM, jeżeli tak została wykonana implementacja).

Jeżeli jednak potrzebujesz znacznika czasu w odniesieniu do konkretnego dnia, godziny, sekundy itp., to najprostsze, co Cię zainteresuje, to new Date() oraz jej metoda getTime(), która przekształca ten czas na liczbę long reprezentującą liczbę sekund od 01.01.1970 r. Wartość ta jest doskonała jako timestamp dla plików choćby z tego powodu, że w tym samym formacie daje wynik metoda File.lastModified(), którą można też inicjować nowy obiekt Date(). Tak więc działa to dobrze i przenośnie w dwie strony.

Co do currentTimeMillis(), to nie masz racji (nanoTime() jednak jak najbardziej).

currentTimeMillis:

the difference, measured in milliseconds, between the current time and midnight, January 1, 1970 UTC.

http://java.sun.com/javase/6/docs/api/java/lang/System.html#currentTimeMillis%28%29

Jeżeli jednak chce się badać czas działanie kodu, to lepiej użyć nanoTime(), gdyż i tak ważna jest tylko różnica.

0

Ano racja. Kod konstruktora Date():

    /**
     * Allocates a Date object and initializes it so that 
     * it represents the time at which it was allocated, measured to the 
     * nearest millisecond. 
     *
     * @see     java.lang.System#currentTimeMillis()
     */
    public Date() {
        this(System.currentTimeMillis());
    }

1 użytkowników online, w tym zalogowanych: 0, gości: 1