Zeigen Sie die aktuelle Uhrzeit und das aktuelle Datum in einer Android-Anwendung an


Antworten:


301

Okay, nicht so schwer, da es verschiedene Methoden gibt, um dies zu tun. Ich gehe davon aus, dass Sie das aktuelle Datum und die aktuelle Uhrzeit in eine eingeben möchten TextView.

String currentDateTimeString = java.text.DateFormat.getDateTimeInstance().format(new Date());

// textView is the TextView view that should display it
textView.setText(currentDateTimeString);

In der Dokumentation finden Sie mehr zu lesen, die hier leicht zu finden ist . Dort finden Sie weitere Informationen zum Ändern des für die Konvertierung verwendeten Formats.


43
Bitte - sei expliziter! Was ist der Fehler? Haben Sie die falsche DateFormat-Klasse importiert? Es ist java.text.DateFormatund NICHT android.text.format.DateFormat! Und es ist java.util.Dateund NICHT java.sql.Date! Nur ein kleiner Hinweis zum Stellen von Fragen: Versuchen Sie genau zu sein, z. B.: Erklären Sie, was Sie in Ihrer Frage mit "Anzeige" meinen. Und wenn Sie meine Zeilen eingeben - natürlich müssen sowohl Date als auch DateFormat importiert werden -, wenn Sie jeweils 2 auswählen können, können Sie zumindest eine beliebige Kombination ausprobieren: Es sind nur 4!
Zordid

Entschuldigung, Sir, ich habe Datum und nicht Zeit. Können wir auch Zeit bekommen?
BIBEKRBARAL

28
Schauen Sie sich developer.android.com/reference/java/text/SimpleDateFormat.html an - dort können Sie sehen, wie Sie genau definieren , was Sie in Ihrer Ausgabezeichenfolge sein möchten. ZB für den Zeitgebrauch "HH:mm:ss"! Vollständig:currentTimeString = new SimpleDateFormat("HH:mm:ss").format(new Date());
Zordid

2
Es gibt auch DateFormat.getTimeInstance()und DateFormat.getDateTimeInstance().
Felix

Wie effizient ist das? Nehmen wir an, Sie müssen sich Zeit für eine ständig schießende Methode nehmen. Gibt es etwas Effizienteres, als jedes Mal ein neues Datumsobjekt zu erstellen?
keshav.bahadoor

125
public class XYZ extends Activity {

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //setContentView(R.layout.main);

        Calendar c = Calendar.getInstance();
        System.out.println("Current time => "+c.getTime());

        SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String formattedDate = df.format(c.getTime());
        // formattedDate have current date/time
        Toast.makeText(this, formattedDate, Toast.LENGTH_SHORT).show();


      // Now we display formattedDate value in TextView
        TextView txtView = new TextView(this);
        txtView.setText("Current Date and Time : "+formattedDate);
        txtView.setGravity(Gravity.CENTER);
        txtView.setTextSize(20);
        setContentView(txtView);
    }

}

Geben Sie hier die Bildbeschreibung ein


1
android.os.Build.VERSION.SDK_INT> = android.os.Build.VERSION_CODES.N (24).
Kangear

Wie zu erklären, SimpleDateFormatweil ich habe, kann keine Symbolklasse finden
Dubis

51
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.main);
    Thread myThread = null;

    Runnable runnable = new CountDownRunner();
    myThread= new Thread(runnable);   
    myThread.start();

}

public void doWork() {
    runOnUiThread(new Runnable() {
        public void run() {
            try{
                TextView txtCurrentTime= (TextView)findViewById(R.id.lbltime);
                    Date dt = new Date();
                    int hours = dt.getHours();
                    int minutes = dt.getMinutes();
                    int seconds = dt.getSeconds();
                    String curTime = hours + ":" + minutes + ":" + seconds;
                    txtCurrentTime.setText(curTime);
            }catch (Exception e) {}
        }
    });
}


class CountDownRunner implements Runnable{
    // @Override
    public void run() {
            while(!Thread.currentThread().isInterrupted()){
                try {
                doWork();
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                        Thread.currentThread().interrupt();
                }catch(Exception e){
                }
            }
    }
}

@Harshit diese Funktion kommt mit dem Android SDK, solange Ihre Klasse Aktivität erweitert
Carlos P

2
Ich weiß, dass dies eine alte Frage ist, aber wenn jemand sie wie ich in Google findet, sollte er wissen, dass die Methoden Date.getX veraltet sind.
tobi

38

Die offensichtlichen Optionen für die Anzeige der Uhrzeit sind die AnalogClockAnsicht und die DigitalClockAnsicht .

Zum Beispiel das folgende Layout:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    android:orientation="vertical">

    <AnalogClock
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content"/>

    <DigitalClock 
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:gravity="center" 
        android:textSize="20sp"/>
</LinearLayout>

Sieht aus wie das:

Bildschirmfoto


4
Sehr geehrter Herr, ich möchte die aktuelle Uhrzeit mit setText anzeigen.
BIBEKRBARAL

5
Ich fühle mich wie eine blöde Scheiße, nachdem ich diese offensichtliche Antwort gelesen habe! Ich habe mein eigenes Runnable implementiert, es für eine bestimmte Zeit in den Ruhezustand versetzt und so weiter, als die offensichtliche Antwort ein XML-Einzeiler war! Vielen Dank (mehr als ein Jahr nach Ihrem Beitrag) :-)
dbm

6
Im Jahr 2015 ist es veraltet und es wird empfohlen, stattdessen TextClock zu verwenden. :)
Evilripper

1
AnalogClock ist in API-Level 23 veraltet. AnalogClock und DigitalClock zeigen nur die aktuelle Uhrzeit an, nicht jedoch das aktuelle Datum.
Zafer

34

Falls Sie eine einzelne Codezeile wünschen:

String date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime());

Das Ergebnis ist "2016-09-25 16:50:34"


23

Meine eigene Arbeitslösung:

Calendar c = Calendar.getInstance();

String sDate = c.get(Calendar.YEAR) + "-" 
+ c.get(Calendar.MONTH)
+ "-" + c.get(Calendar.DAY_OF_MONTH) 
+ " at " + c.get(Calendar.HOUR_OF_DAY) 
+ ":" + c.get(Calendar.MINUTE);

Hoffe das hilft!


Ich frage mich, warum c.get (Calendar.MONTH) 5 zurückgibt, wenn es angeblich 6 ist. Mein Gerät hat die richtigen Zeiteinstellungen.
Kris

Oh ja, aber warum müssen sie das tun, wenn die anderen Variablen genau waren? :)
Kris

1
Kalender c = Calendar.getInstance (); int month = c.get (Calendar.MONTH) + 1; Zeichenfolge sDate = month + "-" + c.get (Calendar.DAY_OF_MONTH) + "-" + c.get (Calendar.YEAR) + "-" + c.get (Calendar.HOUR_OF_DAY) + ":" + c. get (Calendar.MINUTE); das funktioniert gut
user577732

20

Wenn Sie Datum und Uhrzeit in einem bestimmten Muster abrufen möchten, können Sie diese verwenden

Date d = new Date();
CharSequence s = DateFormat.format("yyyy-MM-dd hh:mm:ss", d.getTime());

15

Von Wie erhalte ich das vollständige Datum mit dem richtigen Format? ::

Benutzen Sie bitte

android.text.format.DateFormat.getDateFormat(Context context)
android.text.format.DateFormat.getTimeFormat(Context context)

um gültige Zeit- und Datumsformate im Sinne der aktuellen Benutzereinstellungen zu erhalten (z. B. 12/24-Zeitformat).

import android.text.format.DateFormat;

private void some() {
    final Calendar t = Calendar.getInstance();
    textView.setText(DateFormat.getTimeFormat(this/*Context*/).format(t.getTime()));
}

10

Hier ist der Code, der für mich funktioniert hat. Bitte versuchen Sie dies. Es ist eine einfache Methode, die Zeit und Datum von einem Systemaufruf nimmt. Die Methode Datetime (), wo immer Sie sie benötigen.

public static String Datetime()
{
    Calendar c = Calendar .getInstance();
    System.out.println("Current time => "+c.getTime());
    SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mms");
    formattedDate = df.format(c.getTime());
    return formattedDate;
}

9

Verwenden:

Calendar c = Calendar.getInstance();

int seconds = c.get(Calendar.SECOND);
int minutes = c.get(Calendar.MINUTE);
int hour = c.get(Calendar.HOUR);
String time = hour + ":" + minutes + ":" + seconds;


int day = c.get(Calendar.DAY_OF_MONTH);
int month = c.get(Calendar.MONTH);
int year = c.get(Calendar.YEAR);
String date = day + "/" + month + "/" + year;

// Assuming that you need date and time in a separate
// textview named txt_date and txt_time.

txt_date.setText(date);
txt_time.setText(time);

7
String formattedDate = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(Calendar.getInstance().getTime()); 

Verwenden Sie formattedDateals Ihr Stringmit dem Datum gefüllt.
In meinem Fall:mDateButton.setText(formattedDate);


6
Calendar c = Calendar.getInstance();
int month=c.get(Calendar.MONTH)+1;
String sDate = c.get(Calendar.YEAR) + "-" + month+ "-" + c.get(Calendar.DAY_OF_MONTH) +
"T" + c.get(Calendar.HOUR_OF_DAY)+":"+c.get(Calendar.MINUTE)+":"+c.get(Calendar.SECOND);

Dies gibt ein Datums- / Uhrzeitformat wie 2010-05-24T18: 13: 00 an



6

So zeigen Sie die aktuelle Datumsfunktion an:

Calendar c = Calendar.getInstance();

SimpleDateFormat df = new SimpleDateFormat("dd-MMM-yyyy");
String date = df.format(c.getTime());
Date.setText(date);

Sie müssen importieren wollen

import java.text.SimpleDateFormat; import java.util.Calendar;

Sie müssen verwenden wollen

TextView Date;
Date = (TextView) findViewById(R.id.Date);

5

Dies würde das aktuelle Datum und die aktuelle Uhrzeit angeben:

public String getCurrDate()
{
    String dt;
    Date cal = Calendar.getInstance().getTime();
    dt = cal.toLocaleString();
    return dt;
}

5

Kopieren Sie einfach diesen Code und hoffen Sie, dass dies für Sie gut funktioniert.

Calendar c = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("dd:MMMM:yyyy HH:mm:ss a");
String strDate = sdf.format(c.getTime());

3
String currentDateandTime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
Toast.makeText(getApplicationContext(), currentDateandTime, Toast.LENGTH_SHORT).show();

3

Versuchen Sie den folgenden Code:

SimpleDateFormat dateFormat = new SimpleDateFormat(
                                    "yyyy/MM/dd HH:mm:ss");

Calendar cal = Calendar.getInstance();
System.out.println("time => " + dateFormat.format(cal.getTime()));

String time_str = dateFormat.format(cal.getTime());

String[] s = time_str.split(" ");

for (int i = 0; i < s.length; i++) {
     System.out.println("date  => " + s[i]);
}

int year_sys = Integer.parseInt(s[0].split("/")[0]);
int month_sys = Integer.parseInt(s[0].split("/")[1]);
int day_sys = Integer.parseInt(s[0].split("/")[2]);

int hour_sys = Integer.parseInt(s[1].split(":")[0]);
int min_sys = Integer.parseInt(s[1].split(":")[1]);

System.out.println("year_sys  => " + year_sys);
System.out.println("month_sys  => " + month_sys);
System.out.println("day_sys  => " + day_sys);

System.out.println("hour_sys  => " + hour_sys);
System.out.println("min_sys  => " + min_sys);

3

Sie können es auf diese Weise versuchen

Calendar calendar = Calendar.getInstance();
SimpleDateFormat mdformat = new SimpleDateFormat("HH:mm:ss");
String strDate = "Current Time : " + mdformat.format(calendar.getTime());

2

Wenn Sie mit Datum / Uhrzeit in Android arbeiten möchten, empfehle ich Ihnen, ThreeTenABP zu verwenden , eine Version des java.time.*Pakets (verfügbar ab API 26 auf Android), das mit Java 8 geliefert wird java.util.Dateund als Ersatz für und verfügbar ist java.util.Calendar.

LocalDate localDate = LocalDate.now();
DateTimeFormatter formatter = DateTimeFormatter.ofLocalizedDate(FormatStyle.MEDIUM);
String date = localDate.format(formatter);
textView.setText(date);

1
Ich bin mir sicher, dass Sie das Richtige gemeint haben: java.time ist in Android API Level 26 integriert. Mit ThreeTenABP erhalten Sie praktisch die gleiche Funktionalität auf niedrigeren API-Ebenen . Der Code kann also sowohl auf niedriger als auch auf hoher Ebene arbeiten.
Ole VV

2
Und da es um die Anzeige von Datum und Uhrzeit ging , kann man zu diesem Zweck beispielsweise a verwendenZonedDateTime anstelle von LocalDateund DateTimeFormatter.ofLocalizedDateTimeanstelle von verwenden ofLocalizedDate. Andernfalls ist der Code derselbe.
Ole VV

1

Zum Anzeigen des aktuellen Datums und der aktuellen Uhrzeit in der Textansicht

    /// For Show Date
    String currentDateString = DateFormat.getDateInstance().format(new Date());
    // textView is the TextView view that should display it
    textViewdate.setText(currentDateString);
    /// For Show Time
    String currentTimeString = DateFormat.getTimeInstance().format(new Date());
    // textView is the TextView view that should display it
    textViewtime.setText(currentTimeString);

Vollständigen Code überprüfen Android - Zeigt das aktuelle Datum und die aktuelle Uhrzeit in einem Android Studio-Beispiel mit Quellcode an


0

Aktuelle Uhrzeit / Datum abrufen einfach den folgenden Codeausschnitt:

So verwenden Sie die Zeit :

SimpleDateFormat simpleDateFormatTime = new SimpleDateFormat("HH:mm", Locale.getDefault());
String strTime = simpleDateFormatTime.format(now.getTime());

So verwenden Sie Datum :

SimpleDateFormat simpleDateFormatDate = new SimpleDateFormat("E, MMM dd, yyyy", Locale.getDefault());    
String strDate = simpleDateFormatDate.format(now.getTime());

und du bist gut zu gehen.


0
SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");
Calendar c = Calendar.getInstance();
Date date = Calendar.getInstance().getTime();
String sDate = format.format(date);//31-12-9999
int mYear = c.get(Calendar.YEAR);//9999
int mMonth = c.get(Calendar.MONTH);
mMonth = mMonth + 1;//12
int hrs = c.get(Calendar.HOUR_OF_DAY);//24
int min = c.get(Calendar.MINUTE);//59
String AMPM;
if (c.get(Calendar.AM_PM) == 0) {
    AMPM = "AM";
} else {
    AMPM = "PM";
}
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.