Tampilkan waktu dan tanggal saat ini di aplikasi Android


Jawaban:


302

Oke, tidak sesulit itu karena ada beberapa metode untuk melakukan ini. Saya berasumsi Anda ingin memasukkan tanggal & waktu saat ini menjadi a TextView.

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

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

Ada lebih banyak untuk dibaca dalam dokumentasi yang dapat dengan mudah ditemukan di sini . Di sana Anda akan menemukan informasi lebih lanjut tentang cara mengubah format yang digunakan untuk konversi.


43
Tolong - lebih eksplisit! Apa kesalahannya? Apakah Anda mengimpor kelas DateFormat yang salah? Ini java.text.DateFormatdan BUKAN android.text.format.DateFormat! Dan itu java.util.Datedan TIDAK java.sql.Date! Hanya sedikit petunjuk tentang mengajukan pertanyaan: cobalah untuk lebih tepatnya, misalnya: nyatakan apa yang Anda maksud dengan "tampilkan" dalam pertanyaan Anda. Dan ketika Anda mengetik di baris saya - Date danormat harus, tentu saja, harus diimpor - jika ada pilihan 2 untuk masing-masing, paling tidak Anda bisa mencoba kombinasi apa pun: hanya 4!
Zordid

maaf pak, saya dapat kencan bukan waktu. begitu pula kita dapat waktu?
BIBEKRBARAL

28
Lihat developer.android.com/reference/java/text/SimpleDateFormat.html - di sana Anda dapat melihat cara menentukan dengan tepat apa yang Anda inginkan dalam string output Anda. Misalnya untuk penggunaan waktu "HH:mm:ss"! Sepenuhnya:currentTimeString = new SimpleDateFormat("HH:mm:ss").format(new Date());
Zordid

2
Ada juga DateFormat.getTimeInstance()dan DateFormat.getDateTimeInstance().
Felix

Seberapa efisienkah ini? Katakanlah Anda perlu mendapatkan waktu dari metode menembak yang terus-menerus. Adakah yang lebih efisien daripada membuat objek Date baru setiap kali?
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);
    }

}

masukkan deskripsi gambar di sini


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

Bagaimana cara mendeklarasikan SimpleDateFormatkarena saya sudah tidak dapat menemukan simbol class
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 fungsi ini hadir dengan Android SDK selama kelas Anda memperluas Activity
Carlos P

2
Saya tahu ini adalah pertanyaan lama, tetapi jika seseorang akan menemukannya di google seperti saya, ia harus tahu bahwa metode Date.getX sudah usang.
tobi

38

Pilihan yang jelas untuk menampilkan waktu adalah AnalogClockTampilan dan DigitalClockTampilan .

Misalnya, tata letak berikut:

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

Terlihat seperti ini:

tangkapan layar


4
Tuan, saya ingin menampilkan waktu saat ini menggunakan setText.
BIBEKRBARAL

5
Aku merasa seperti orang bodoh setelah membaca jawaban yang jelas ini! Saya menerapkan runnable saya sendiri, menidurkannya untuk waktu tertentu dan seterusnya ketika jawaban yang jelas adalah XML-one-liner! Terima kasih banyak (lebih dari setahun setelah posting Anda) :-)
dbm

6
Pada 2015 sudah tidak digunakan lagi dan Anda disarankan menggunakan TextClock saja. :)
Evilripper

1
AnalogClock tidak digunakan lagi di API level 23. dan AnalogClock dan DigitalClock hanya menampilkan waktu saat ini, tetapi tidak tanggal saat ini.
Zafer

34

Jika Anda menginginkan satu baris kode:

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

Hasilnya adalah "2016-09-25 16:50:34"


23

Solusi kerja saya sendiri:

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

Semoga ini membantu!


Saya bertanya-tanya mengapa c.get (Calendar.MONTH) mengembalikan 5 ketika seharusnya 6? Perangkat saya memiliki pengaturan waktu yang benar.
Kris

Oh ya, tetapi mengapa mereka harus melakukan itu ketika variabel lainnya akurat. :)
Kris

1
Kalender c = Calendar.getInstance (); int month = c.get (Calendar.MONTH) + 1; String sDate = bulan + "-" + c.get (Calendar.DAY_OF_MONTH) + "-" + c.get (Calendar.YEAR) + "-" + c.get (Calendar.HOUR_OF_DAY) + ":" + c. dapatkan (Calendar.MINUTE); itu berfungsi dengan baik
user577732

20

Jika Anda ingin mendapatkan tanggal dan waktu dalam pola tertentu yang dapat Anda gunakan

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

15

Dari Bagaimana mendapatkan tanggal penuh dengan format yang benar?:

Mohon gunakan

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

untuk mendapatkan format waktu dan tanggal yang valid dalam arti pengaturan pengguna saat ini (format 12/24 waktu, misalnya).

import android.text.format.DateFormat;

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

10

Berikut adalah kode yang berfungsi untuk saya. Silakan coba ini. Ini adalah metode sederhana yang membutuhkan waktu dan tanggal dari panggilan sistem. Metode Datetime () di mana pun Anda butuhkan.

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

Menggunakan:

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

Gunakan formattedDatesebagai Anda Stringdiisi dengan tanggal.
Dalam kasus saya: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);

Ini akan memberikan format waktu tanggal seperti 2010-05-24T18: 13: 00



6

Untuk menampilkan fungsi tanggal saat ini:

Calendar c = Calendar.getInstance();

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

Anda harus ingin mengimpor

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

Anda harus mau menggunakannya

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

5

Ini akan memberikan tanggal dan waktu saat ini:

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

5

Cukup salin kode ini dan harap ini berfungsi dengan baik untuk Anda.

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

Coba kode di bawah ini:

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

Anda bisa coba cara ini

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

2

Jika Anda ingin bekerja dengan tanggal / waktu di android, saya sarankan Anda untuk menggunakan ThreeTenABP yang merupakan versi java.time.*paket (tersedia mulai dari API 26 di android) yang dikirimkan dengan Java 8 tersedia sebagai pengganti java.util.Datedan java.util.Calendar.

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

1
Hanya untuk meluruskannya, saya yakin Anda maksud hal yang benar: java.time dibangun dari Android API level 26. ThreeTenABP adalah apa yang Anda gunakan untuk mendapatkan fungsi yang hampir sama pada level API yang lebih rendah . Jadi kodenya dapat bekerja pada level rendah dan tinggi.
Ole VV

2
Dan karena pertanyaannya adalah tentang menampilkan tanggal dan waktu , untuk tujuan itu orang dapat menggunakan misalnya a ZonedDateTimebukan LocalDatedan DateTimeFormatter.ofLocalizedDateTimebukan ofLocalizedDate. Kalau tidak, kodenya akan sama.
Ole VV

1

Untuk Menampilkan Tanggal dan Waktu Saat Ini di Textview

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

Periksa Kode Lengkap Android - Menampilkan tanggal dan waktu saat ini dalam Contoh Android Studio dengan kode sumber


0

Untuk mendapatkan Waktu / Tanggal saat ini, cukup gunakan cuplikan kode berikut:

Untuk menggunakan Waktu :

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

Untuk menggunakan Tanggal :

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

dan kamu baik untuk pergi.


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";
}
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.