Bir Android uygulamasında geçerli saati ve tarihi görüntüleme


Yanıtlar:


303

Tamam, bunu yapmak için birkaç yöntem olduğu için zor değil. Geçerli tarih ve saati a TextView.

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

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

Belgede kolayca bulabileceğiniz daha çok şey var . Burada, dönüşüm için kullanılan biçimin nasıl değiştirileceği hakkında daha fazla bilgi bulacaksınız.


43
Lütfen - daha açık ol! Hata nedir? Yanlış DateFormat sınıfını içe aktardınız mı? Bu java.text.DateFormatve DEĞİL android.text.format.DateFormat! Ve öyle java.util.Dateve DEĞİL java.sql.Date! Soru sormaya ilişkin küçük bir ipucu: kesin olmaya çalışın, örneğin: sorunuzda "görüntüleyiş" ile ne demek istediğinizi açıklayın. Ve satırlarımı yazdığınızda - hem Date hem de DateFormat elbette içe aktarılmalıdır - her biri için 2 seçenek varsa, deneyebileceğiniz en az şey herhangi bir kombinasyon: sadece 4!
Zordid

üzgünüm efendim, tarih değil zamanım var. aynı şekilde zaman alabilir miyiz?
BIBEKRBARAL

28
Developer.android.com/reference/java/text/SimpleDateFormat.html adresine bir göz atın - orada çıktı dizenizde tam olarak ne olmasını istediğinizi görebilirsiniz . Örneğin zaman kullanımı için "HH:mm:ss"! Tamamen:currentTimeString = new SimpleDateFormat("HH:mm:ss").format(new Date());
Zordid

2
Ayrıca DateFormat.getTimeInstance()ve var DateFormat.getDateTimeInstance().
Felix

Bu ne kadar verimli? Diyelim ki sürekli ateşleme yönteminden zaman almanız gerekiyor. Her seferinde yeni bir Date nesnesi oluşturmaktan daha verimli bir şey var mı?
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);
    }

}

resim açıklamasını buraya girin


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

SimpleDateFormatSahip olduğum için nasıl beyan ederim sembol sınıfı bulamıyorum
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 Bu işlev, sınıfınız genişletildiği sürece Android SDK ile birlikte geliyor Etkinlik
Carlos P

2
Bu eski bir soru olduğunu biliyorum, ama eğer birisi benim gibi google'da bulursa, Date.getX yöntemlerinin kullanımdan kaldırıldığını bilmelidir.
tobi

38

Zamanı görüntülemek için bariz seçenekler AnalogClockGörünüm ve DigitalClockGörünüm'dür .

Örneğin, aşağıdaki düzen:

<?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>

Buna benzer:

ekran görüntüsü


4
sevgili efendim, ben setText kullanarak şimdiki zaman görüntülemek istiyorum.
BIBEKRBARAL

5
Bu açık cevabı okuduktan sonra kendimi aptalca bir bok gibi hissediyorum! Belli bir süre XML-one-liner olduğunda, belirli bir süre uyumaya bıraktım ve kendi runnable'ımı uyguladım! Çok teşekkürler (mesajınızdan sonra bir yıldan fazla) :-)
dbm

6
2015 yılında kullanımdan kaldırılmıştır ve bunun yerine TextClock kullanmanız önerilir. :)
Evilripper

1
AnalogClock API seviye 23'te kullanımdan kaldırılmıştır ve AnalogClock ve DigitalClock yalnızca geçerli saati gösterir ancak geçerli tarihi göstermez.
Zafer

34

Tek bir kod satırı istiyorsanız:

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

Sonuç "2016-09-25 16:50:34"


23

Kendi çalışma çözümüm:

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);

Bu yardımcı olur umarım!


Acaba c.get (Calendar.MONTH) 6 olduğu zaman neden 5 döndürüyor? Cihazımın doğru zaman ayarları var.
Kris

Oh evet, ama neden diğer değişkenler doğru olduğunda bunu yapmak zorundalar. :)
Kris

1
Takvim c = Calendar.getInstance (); int ay = c.get (Takvim.MONTH) + 1; Dize sDate = ay + "-" + c.get (Calendar.DAY_OF_MONTH) + "-" + c.get (Calendar.YEAR) + "-" + c.get (Calendar.HOUR_OF_DAY) + ":" + c. (Calendar.MINUTE) olsun; iyi çalışır
user577732

20

Tarih ve saati belirli bir düzende almak istiyorsanız kullanabilirsiniz

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

15

Gönderen How doğru formatta tam tarihi almak için? :

Lütfen kullan

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

geçerli kullanıcı ayarları anlamında geçerli saat ve tarih biçimlerini almak için (örneğin 12/24 saat biçimi).

import android.text.format.DateFormat;

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

10

İşte benim için çalışan kod. Lütfen bunu deneyin. Sistem çağrısından saat ve tarih alan basit bir yöntemdir. İhtiyacınız olan her yerde Datetime () yöntemi.

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

kullanın:

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()); 

Tarih ile doldurulmuş formattedDateolarak kullanın String.
Benim durumumda: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);

Bu, 2010-05-24T18: 13: 00 gibi tarih saat biçimini verecektir.



6

Geçerli tarih işlevini görüntülemek için:

Calendar c = Calendar.getInstance();

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

İçe aktarmak istediğiniz

import java.text.SimpleDateFormat; içe aktar java.util.Calendar;

Kullanmak istemelisin

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

5

Bu, geçerli tarih ve saati verecektir:

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

5

Sadece bu kodu kopyalayın ve bunun sizin için iyi çalıştığını umuyoruz.

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

Aşağıdaki kodu deneyin:

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

Bu şekilde deneyebilirsiniz

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

2

Eğer tarih / saat ile çalışmak isteyen android ben kullanmak öneriyoruz ThreeTenABP bir sürümünü olduğu java.time.*için yedek olarak kullanılabilir Java 8 ile birlikte gelen (android API 26 edinilebilir başlangıç) paketin java.util.Dateve java.util.Calendar.

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

1
Sadece düz ayarlamak için, doğru şeyi kastettiğinizden eminim: java.time, Android API seviye 26'dan inşa edilmiştir . ThreeTenABP, düşük API seviyelerinde neredeyse aynı işlevselliği elde etmek için kullandığınız şeydir . Böylece kod hem düşük hem de yüksek seviyelerde çalışabilir.
Ole VV

2
Ve soru tarih ve saati görüntülemekle ilgili olduğundan, bu amaçla kişi ZonedDateTimeyerine LocalDateve DateTimeFormatter.ofLocalizedDateTimeyerine a kullanabilirsiniz ofLocalizedDate. Aksi takdirde kod aynı olacaktır.
Ole VV

1

Metin Görünümünde Geçerli Tarih ve Saati Göstermek İçin

    /// 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);

Kodun tamamını kontrol etme Android - Kaynak koduyla bir Android Studio Örneği'nde geçerli tarih ve saati görüntüleyin


0

Geçerli Saat / Tarihi almak için aşağıdaki kod snippet'ini kullanın:

Kullanmak için Zaman :

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

Kullanmak için tarihi :

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

ve gitmekte fayda var.


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";
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.