it-swarm.com.de

Java Code zum Abrufen der aktuellen Uhrzeit

Ich suche Code in Java, um die Uhrzeit meines lokalen PC-Systems in meine Anwendung abzurufen oder zu synchronisieren.

148
sushmita

Versuche dies:

import Java.text.SimpleDateFormat;
import Java.util.Calendar;

public class currentTime {

    public static void main(String[] args) {
        Calendar cal = Calendar.getInstance();
        SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
        System.out.println( sdf.format(cal.getTime()) );
    }

}

Sie können SimpleDateFormat wie gewünscht formatieren. Weitere Informationen finden Sie in Java api:

SimpleDateFormat

Kalender

161
Artur

Beide

new Java.util.Date()

und

System.currentTimeMillis()

zeigt die aktuelle Systemzeit an.

141
sleske

tl; dr

Instant.now()  // UTC

…oder…

ZonedDateTime.now(
    // Specify time zone.
    ZoneId.of( "Pacific/Auckland" )
)  

Einzelheiten

Das gebündelte Java.util.Date/.Calendar Klassen sind notorisch lästig. Vermeide sie. Sie sind jetzt Legacy, ersetzt durch das Java.time Framework.

Verwenden Sie stattdessen entweder:

Java.time

ZonedDateTime zdt = ZonedDateTime.now();

Falls für alten Code erforderlich, konvertieren Sie nach Java.util.Date. Gehen Sie bei Instant durch. Dies ist ein Moment auf der Zeitachse in UTC .

Java.util.Date date = Java.util.Date.from( zdt.toInstant() );

Zeitzone

Geben Sie explizit Ihre gewünschte/erwartete Zeitzone an, anstatt sich implizit auf die aktuelle Standardzeitzone der JVM zu verlassen.

ZoneId zoneId = ZoneId.of( "America/Montreal" );
ZonedDateTime zdt = ZonedDateTime.now( zoneId );  // Pass desired/expected time zone.

Joda-Zeit

Zu Ihrer Information, das Joda-Time Projekt befindet sich jetzt im Wartungsmodus , wobei das Team die Migration zu den Java.time Klassen empfiehlt.

DateTime now = DateTime.now();

So konvertieren Sie ein Joda-Time DateTime -Objekt in ein Java.util.Date für die Interaktion mit anderen Klassen

Java.util.Date date = now.toDate();

Suchen Sie vor dem Posten nach StackOverflow. Ihre Frage wurde bereits gestellt und beantwortet.


Über Java.time

Das Java.time Framework ist in Java 8 und höher. Diese Klassen ersetzen die lästigen alten Legacy Datum-Uhrzeit-Klassen wie - Java.util.Date , Calendar , & SimpleDateFormat .

Das Joda-Time -Projekt, das sich jetzt im Wartungsmodus befindet, rät zur Migration in die Java.time -Klassen.

Weitere Informationen finden Sie im Oracle Tutorial . Durchsuchen Sie Stack Overflow nach vielen Beispielen und Erklärungen. Spezifikation ist JSR 31 .

Woher bekomme ich die Java.time-Klassen?

Das Projekt ThreeTen-Extra erweitert Java.time um zusätzliche Klassen. Dieses Projekt ist ein Testfeld für mögliche zukünftige Ergänzungen von Java.time. Hier finden Sie möglicherweise einige nützliche Klassen wie Interval , YearWeek , YearQuarter und mehr .

47
Basil Bourque

System.currentTimeMillis ()

alles andere funktioniert danach .. zB new Date () ruft System.currentTimeMillis () auf.

10
mP.

Versuchen Sie es auf diese Weise, effizienter und kompatibel:

SimpleDateFormat time_formatter = new SimpleDateFormat("yyyy-MM-dd_HH:mm:ss.SSS");
String current_time_str = time_formatter.format(System.currentTimeMillis());
//Log.i("test", "current_time_str:" + current_time_str);
8
Verdigrass

Um die Entwickler zu informieren und Basil Bourque zu danken, möchte ich diesem Thema nur meinen Stein hinzufügen.

Wenn Sie einfach das Format HH: MM: SS erhalten möchten, gehen Sie wie folgt vor:

LocalTime hour = ZonedDateTime.now().toLocalTime().truncatedTo(ChronoUnit.SECONDS);

Prost.

P.S .: Das wird zumindest mit Java 8!

7
Damiii

Wie oben gesagt, können Sie verwenden

Date d = new Date();

oder verwenden

Calendar.getInstance();

oder wenn Sie es in Millis wollen

System.currentTimeMillis()
5
Nuno Furtado

versuche dies:

final String currentTime    = String.valueOf(System.currentTimeMillis());
4
Joolah

Ich bin mir nicht sicher, was du meinst, aber du brauchst es wahrscheinlich nur

Date d = new Date();
4
Raibaz

Sie können new Date () verwenden und erhalten die aktuelle Uhrzeit.

Wenn Sie es in einem Format darstellen müssen (und normalerweise müssen Sie es tun), verwenden Sie Formatierer.

DateFormat df = DateFormat.getDateTimeInstance (DateFormat.MEDIUM, DateFormat.MEDIUM, new Locale ("en", "EN"));
String formattedDate = df.format (new Date ());
3
Roman

new Date (). getTime () ist fehlerhaft.

    Date date = new Date();
    System.out.println(date);
    System.out.println(date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds());
    long t1 = date.getTime();
    System.out.println((t1 / 1000 / 60 / 60) % 24 + ":" + (t1 / 1000 / 60) % 60 + ":" + (t1 / 1000) % 60);
    long t2 = System.currentTimeMillis();
    System.out.println((t2 / 1000 / 60 / 60) % 24 + ":" + (t2 / 1000 / 60) % 60 + ":" + (t2 / 1000) % 60);

Es gibt mir die falsche Zeit Millis zurück. System.currentTimeMillis() auch. Da ich das Datum Instanz frage, um mir die entsprechende Zeit-Millis mitzuteilen, muss es die übereinstimmenden zurückgeben, nicht andere aus einer anderen Zeitzone. Komisch, wie veraltete Methoden die einzigen sind, die korrekte Werte zurückgeben.

3
mini-me

Verwenden Sie zum Abrufen der Systemzeit Calendar.getInstance (). GetTime ().

Und Sie sollten jedes Mal die neue Instanz von Calendar erhalten, um current time zu haben.

Um ändern Systemzeit von Java Code können Sie eine Befehlszeile verwenden

2
Alex

versuchen Sie dies, um das aktuelle Datum zu erhalten. Sie können auch die aktuelle Stunde, Minuten und Sekunden mit getters abrufen:

new Date(System.currentTimeMillis()).get....()
1

Ich verstehe, dass dies eine ziemlich alte Frage ist. Möchte aber klarstellen, dass:

Date d = new Date() 

wird in den aktuellen Versionen von Java entzogen. Die empfohlene Methode ist die Verwendung eines Kalenderobjekts. Zum Beispiel:

Calendar cal = Calendar.getInstance();
Date currentTime = cal.getTime();

Ich hoffe, dass dies Menschen helfen wird, die diese Frage möglicherweise in Zukunft weiterleiten. Danke euch allen.

1
Adi