Pertanyaan Dapatkan waktu dan tanggal saat ini di Android


Bagaimana saya bisa mendapatkan waktu dan tanggal saat ini di aplikasi Android?


890
2018-03-20 16:12


asal


Jawaban:


Anda bisa menggunakan:

import java.util.Calendar

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

Ada banyak konstanta di Kalender untuk semua yang Anda butuhkan.

Edit:
  Memeriksa Dokumentasi kelas kalender


1067
2018-03-20 16:27



Kamu bisa (tetapi seharusnya tidak lagi - lihat di bawah!) gunakan android.text.format.Time:

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

Dari referensi yang terhubung di atas:

Kelas Waktu adalah penggantian yang lebih cepat   untuk java.util.Calendar dan   kelas java.util.GregorianCalendar.   Sebuah instance dari kelas Waktu   mewakili suatu momen dalam waktu, yang ditentukan   dengan presisi kedua.


CATATAN 1: Sudah beberapa tahun sejak saya menulis jawaban ini, dan ini tentang kelas lama, khusus Android dan sekarang tidak lagi digunakan. Google sekarang kata bahwa "[t] kelasnya memiliki sejumlah masalah dan sangat direkomendasikan itu GregorianCalendar digunakan sebagai gantinya ".


CATATAN 2: Meskipun demikian Time kelas memiliki toMillis(ignoreDaylightSavings) metode, ini hanyalah kemudahan untuk lulus ke metode yang mengharapkan waktu dalam milidetik. Nilai waktu adalah hanya tepat untuk satu detik; bagian milidetik selalu 000. Jika dalam satu lingkaran Anda lakukan

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

Urutan yang dihasilkan akan mengulang nilai yang sama, seperti 1410543204000, sampai detik berikutnya dimulai, pada saat itu 1410543205000 akan mulai mengulang.


474
2018-03-20 16:17



Jika Anda ingin mendapatkan tanggal dan waktu dalam pola tertentu, Anda dapat menggunakan yang berikut:

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

288
2018-01-18 17:44



Bagi mereka yang mungkin lebih suka format yang disesuaikan, Anda dapat menggunakan:

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

Sedangkan Anda dapat memiliki pola DateFormat seperti:

"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



Sebenarnya, lebih aman untuk mengatur zona waktu saat ini yang diatur pada perangkat Time.getCurrentTimezone(), atau Anda akan mendapatkan waktu saat ini di UTC.

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

Kemudian, Anda bisa mendapatkan semua bidang tanggal yang Anda inginkan, seperti, misalnya:

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

Lihat android.text.format.Time kelas untuk semua detail.

MEMPERBARUI

Seperti yang banyak orang tunjukkan, Google mengatakan kelas ini memiliki sejumlah masalah dan tidak seharusnya digunakan lagi:

Kelas ini memiliki sejumlah masalah dan disarankan itu   GregorianCalendar digunakan sebagai gantinya.

Masalah Dikenal:

Untuk alasan historis saat melakukan perhitungan waktu semua   aritmatika saat ini berlangsung menggunakan bilangan bulat 32-bit. Batasan ini   rentang waktu yang dapat diandalkan yang dapat direpresentasikan mulai tahun 1902 hingga 2037.Lihat   artikel wikipedia tentang masalah tahun 2038 untuk detailnya. Jangan mengandalkan   perilaku ini; itu bisa berubah di masa depan. Panggilan   switchTimezone (String) pada tanggal yang tidak bisa ada, seperti dinding   waktu yang dilewati karena transisi DST, akan menghasilkan tanggal   pada tahun 1969 (yaitu -1, atau 1 detik sebelum 1 Januari 1970 UTC). Sebagian besar   format / parsing mengasumsikan teks ASCII dan karena itu tidak cocok   untuk digunakan dengan skrip non-ASCII.


119
2018-02-11 14:02



Untuk tanggal dan waktu saat ini, gunakan:

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

Output mana:

Feb 27, 2012 5:41:23 PM

73
2018-02-27 12:16



Untuk ge waktu saat ini bisa Anda gunakan System.currentTimeMillis() yang standar di Jawa. Kemudian Anda dapat menggunakannya untuk membuat tanggal

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

Dan seperti yang disebutkan oleh orang lain untuk menciptakan waktu

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

46
2017-10-25 23:07



Coba dengan cara ini Semua format diberikan di bawah ini untuk mendapatkan format tanggal dan waktu.

    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



Anda dapat menggunakan kode:

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

Keluaran:

2014-11-11 00:47:55

Anda juga mendapatkan beberapa opsi pemformatan lainnya SimpleDateFormat dari sini.


34
2017-11-10 19:10