it-swarm.com.de

Android Aktuelle Zeitmarke abrufen?

Ich möchte den aktuellen Zeitstempel so erhalten: 1320917972

int time = (int) (System.currentTimeMillis());
Timestamp tsTemp = new Timestamp(time);
String ts =  tsTemp.toString();
202
Rjaibi Mejdi

Die Lösung ist :

Long tsLong = System.currentTimeMillis()/1000;
String ts = tsLong.toString();
241
Rjaibi Mejdi

Vom Entwickler-Blog:

System.currentTimeMillis() ist die Standard-Wanduhr (Zeit und Datum), die Millisekunden seit der Epoche darstellt. Die Wanduhr kann vom Benutzer oder vom Telefonnetzwerk eingestellt werden (siehe setCurrentTimeMillis (long) ), sodass die Uhrzeit unvorhersehbar vorwärts oder rückwärts springen kann. Diese Uhr sollte nur verwendet werden, wenn die Übereinstimmung mit realen Datums- und Zeitangaben wichtig ist, z. B. in einer Kalender- oder Weckeranwendung. Intervall- oder abgelaufene Zeitmessungen sollten eine andere Uhr verwenden. Wenn Sie System.currentTimeMillis() verwenden, sollten Sie die Sendungen ACTION_TIME_TICK, ACTION_TIME_CHANGED und ACTION_TIMEZONE_CHANGED Intents abhören, um herauszufinden, wann sich die Uhrzeit ändert. 

78
drooooooid

1320917972 ist ein Unix-Zeitstempel, der die Anzahl der Sekunden seit 00:00:00 UTC am 1. Januar 1970 verwendet. Sie können die Klasse TimeUnit für die Einheitenumwandlung verwenden - von System.currentTimeMillis() in Sekunden.

String timeStamp = String.valueOf(TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis()));
27
sealskej

Sie können die SimpleDateFormat -Klasse verwenden:

SimpleDateFormat s = new SimpleDateFormat("ddMMyyyyhhmmss");
String format = s.format(new Date());
22
Pratik Butani

Verwenden Sie die Methode unten, um den aktuellen Zeitstempel zu erhalten. Es funktioniert gut für mich.

/**
 * 
 * @return yyyy-MM-dd HH:mm:ss formate date as string
 */
public static String getCurrentTimeStamp(){
    try {

        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String currentDateTime = dateFormat.format(new Date()); // Find todays date

        return currentDateTime;
    } catch (Exception e) {
        e.printStackTrace();

        return null;
    }
}
21
Hits

Es ist einfach zu benutzen:

long millis = new Date().getTime();

wenn Sie es in einem bestimmten Format wünschen, benötigen Sie Formatter wie unten

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String millisInString  = dateFormat.format(new Date());
10
Pranav

Hier ist ein von Menschen lesbarer Zeitstempel, der in einem Dateinamen verwendet werden kann, Nur für den Fall, dass jemand dasselbe benötigt, was ich brauchte:

package com.example.xyz;

import Android.text.format.Time;

/**
 * Clock utility.
 */
public class Clock {

    /**
     * Get current time in human-readable form.
     * @return current time as a string.
     */
    public static String getNow() {
        Time now = new Time();
        now.setToNow();
        String sTime = now.format("%Y_%m_%d %T");
        return sTime;
    }
    /**
     * Get current time in human-readable form without spaces and special characters.
     * The returned value may be used to compose a file name.
     * @return current time as a string.
     */
    public static String getTimeStamp() {
        Time now = new Time();
        now.setToNow();
        String sTime = now.format("%Y_%m_%d_%H_%M_%S");
        return sTime;
    }

}

Lösung in Kotlin:

val nowInEpoch = Instant.now().epochSecond

Stellen Sie sicher, dass Ihre minimale SDK-Version 26 ist.

1
DSavi

Java.time

Ich möchte die moderne Antwort beitragen.

    String ts = String.valueOf(Instant.now().getEpochSecond());
    System.out.println(ts);

Ausgabe im laufenden Betrieb:

1543320466

Während die Division durch 1000 für viele keine Überraschung sein wird, kann es schwierig sein, selbst Zeitkonvertierungen zu machen, daher ist es eine schlechte Angewohnheit, sich einzulassen, wenn man sie vermeiden kann.

Die Instant-Klasse, die ich verwende, ist Teil von Java.time, der modernen Java-API für Datum und Uhrzeit. Es ist in den neuen Android-Versionen ab API-Level 26 integriert. Wenn Sie für älteres Android programmieren, erhalten Sie möglicherweise den Rückport, siehe unten. Wenn Sie dies nicht möchten, wird verständlicherweise immer noch eine integrierte Konvertierung verwendet:

    String ts = String.valueOf(TimeUnit.MILLISECONDS.toSeconds(System.currentTimeMillis()));
    System.out.println(ts);

Dies ist das gleiche wie die Antwort von Sealkej. Die Ausgabe ist wie zuvor.

Frage: Kann ich Java.time auf Android verwenden?

Ja, Java.time funktioniert gut auf älteren und neueren Android-Geräten. Es erfordert mindestens Java 6.

  • In Java 8 und höher und auf neueren Android-Geräten (ab API-Ebene 26) ist die moderne API integriert.
  • In Java 6 und 7 erhalten Sie den ThreeTen Backport, den Backport der neuen Klassen (ThreeTen für JSR 310; siehe die Links unten).
  • Bei (älterem) Android verwenden Sie die Android-Version von ThreeTen Backport. Es heißt ThreeTenABP. Stellen Sie sicher, dass Sie die Datums- und Zeitklassen aus org.threeten.bp mit Unterpaketen importieren.

Links

1
Ole V.V.

Ich schlage vor, die Antwort von Hits zu verwenden, aber ein Locale-Format hinzuzufügen. Entwickler empfiehlt :

try {
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss", Locale.getDefault());
        return dateFormat.format(new Date()); // Find todays date
    } catch (Exception e) {
        e.printStackTrace();

        return null;
    }
0

Benutz einfach

long millis = new Date().getTime();

um die aktuelle Zeit in langen Millis zu erhalten

0
Bilal Ahmad

Probiere diese 

time.setText(String.valueOf(System.currentTimeMillis()));

und timeStamp to time format

SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
String dateString = formatter.format(new Date(Long.parseLong(time.getText().toString())));
time.setText(dateString);
0
Mujahid khan