Frage Aktuelle Uhrzeit und Datum auf Android abrufen


Wie kann ich die aktuelle Uhrzeit und das Datum in einer Android App abrufen?


890
2018-03-20 16:12


Ursprung


Antworten:


Du könntest benutzen:

import java.util.Calendar

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

Es gibt viele Konstanten im Kalender für alles, was Sie brauchen.

Bearbeiten:
  Prüfen Kalenderklassendokumentation


1067
2018-03-20 16:27



Sie können (aber nicht länger sollte - siehe unten!) verwenden android.text.format.Time:

Time now = new Time();
now.setToNow();

Aus der oben verlinkten Referenz:

Die Zeitklasse ist ein schneller Ersatz   für den java.util.Calendar und   java.util.GregorianCalendar-Klassen.   Eine Instanz der Zeitklasse   stellt einen Zeitpunkt dar, angegeben   mit zweiter Präzision.


ANMERKUNG 1: Es ist mehrere Jahre her, dass ich diese Antwort geschrieben habe, und es handelt sich um eine alte, Android-spezifische und jetzt veraltete Klasse. Google jetzt sagt Das "Seine Klasse hat eine Reihe von Problemen und es wird empfohlen, dass Gregorianischer Kalender wird stattdessen verwendet ".


ANMERKUNG 2: Obwohl die Time Klasse hat a toMillis(ignoreDaylightSavings) Methode ist dies lediglich eine Annehmlichkeit, die an Methoden übergeben wird, die die Zeit in Millisekunden erwarten. Der Zeitwert ist nur genau auf eine Sekunde; der Millisekundenanteil ist immer 000. Wenn du das in einer Schleife machst

Time time = new Time();   time.setToNow();
Log.d("TIME TEST", Long.toString(time.toMillis(false)));
... do something that takes more than one millisecond, but less than one second ...

Die resultierende Sequenz wird den gleichen Wert wiederholen, wie z 1410543204000, bis die nächste Sekunde begonnen hat, zu welcher Zeit 1410543205000 wird anfangen zu wiederholen.


474
2018-03-20 16:17



Wenn Sie das Datum und die Uhrzeit in einem bestimmten Muster abrufen möchten, können Sie Folgendes verwenden:

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd_HHmmss");
String currentDateandTime = sdf.format(new Date());

288
2018-01-18 17:44



Für diejenigen, die lieber ein benutzerdefiniertes Format bevorzugen, können Sie verwenden:

DateFormat df = new SimpleDateFormat("EEE, d MMM yyyy, HH:mm");
String date = df.format(Calendar.getInstance().getTime());

Während Sie DateFormat-Muster haben können, wie zum Beispiel:

"yyyy.MM.dd G 'at' HH:mm:ss z" ---- 2001.07.04 AD at 12:08:56 PDT
"hh 'o''clock' a, zzzz" ----------- 12 o'clock PM, Pacific Daylight Time
"EEE, d MMM yyyy HH:mm:ss Z"------- Wed, 4 Jul 2001 12:08:56 -0700
"yyyy-MM-dd'T'HH:mm:ss.SSSZ"------- 2001-07-04T12:08:56.235-0700
"yyMMddHHmmssZ"-------------------- 010704120856-0700
"K:mm a, z" ----------------------- 0:08 PM, PDT
"h:mm a" -------------------------- 12:08 PM
"EEE, MMM d, ''yy" ---------------- Wed, Jul 4, '01

188
2017-12-18 02:42



Eigentlich ist es sicherer, die aktuelle Zeitzone auf dem Gerät einzustellen Time.getCurrentTimezone()oder sonst erhalten Sie die aktuelle Uhrzeit in UTC.

Time today = new Time(Time.getCurrentTimezone());
today.setToNow();

Dann können Sie alle gewünschten Datumsfelder erhalten, zum Beispiel:

textViewDay.setText(today.monthDay + "");             // Day of the month (1-31)
textViewMonth.setText(today.month + "");              // Month (0-11)
textViewYear.setText(today.year + "");                // Year 
textViewTime.setText(today.format("%k:%M:%S"));  // Current time

Sehen android.text.format.Time Klasse für alle Details.

AKTUALISIEREN

Wie viele Leute darauf hinweisen, sagt Google, dass diese Klasse eine Reihe von Problemen hat und nicht mehr verwendet werden sollte:

Diese Klasse hat eine Reihe von Problemen und es wird empfohlen, dass   GregorianCalendar wird stattdessen verwendet.

Bekannte Probleme:

Aus historischen Gründen bei allen Zeitberechnungen   Die Arithmetik findet derzeit unter Verwendung von 32-Bit-Ganzzahlen statt. Dies begrenzt   der zuverlässige Zeitbereich von 1902 bis 2037 darstellbar. Siehe die   Wikipedia-Artikel über das Jahr 2038 Problem für Details. Verlassen Sie sich nicht darauf   Dieses Verhalten; Das kann sich in Zukunft ändern. Berufung   switchTimezone (String) für ein Datum, das nicht vorhanden sein kann, z. B. eine Wand   Zeit, die aufgrund eines DST-Übergangs übersprungen wurde, führt zu einem Datum   1969 (d. h. -1 oder 1 Sekunde vor dem 1. Januar 1970 UTC). Viel von der   Formatierung / Parsing setzt ASCII-Text voraus und ist daher nicht geeignet   zur Verwendung mit Nicht-ASCII-Skripten.


119
2018-02-11 14:02



Für das aktuelle Datum und die aktuelle Uhrzeit verwenden Sie:

String mydate = java.text.DateFormat.getDateTimeInstance().format(Calendar.getInstance().getTime());

Welche Ausgänge:

Feb 27, 2012 5:41:23 PM

73
2018-02-27 12:16



Um die aktuelle Uhrzeit anzuzeigen, können Sie verwenden System.currentTimeMillis() Das ist Standard in Java. Dann können Sie damit ein Datum erstellen

Date currentDate = new Date(System.currentTimeMillis());

Und wie von anderen erwähnt, um eine Zeit zu schaffen

Time currentTime = new Time();
currentTime.setToNow();

46
2017-10-25 23:07



Versuchen Sie es mit diesem Weg. Alle Formate sind unten aufgeführt, um das Datums- und Uhrzeitformat zu erhalten.

    Calendar c = Calendar.getInstance();
    SimpleDateFormat dateformat = new SimpleDateFormat("dd-MMM-yyyy hh:mm:ss aa");
    String datetime = dateformat.format(c.getTime());
    System.out.println(datetime);

first

second third


46
2017-12-17 06:58