Paket java.util menyediakan kelas Date untuk merangkum tanggal dan waktu saat ini. Kelas Date menyediakan dua konstruktor untuk membuat instance objek Date.
Konstruktor pertama menginisialisasi objek dengan tanggal dan waktu saat ini.
Tanggal( )
Konstruktor kedua menerima parameter, yaitu jumlah milidetik sejak 1 Januari 1970.
Tanggal (panjang milidetik)
Setelah objek Tanggal dibuat, Anda dapat memanggil metode berikut.
nomor seri | Metode dan Deskripsi |
---|---|
1 | boolean after(Date date) mengembalikan nilai true jika objek Date yang memanggil metode ini setelah tanggal yang ditentukan, jika tidak maka akan mengembalikan false. |
2 | boolean before(Date date) mengembalikan nilai true jika objek Date yang memanggil metode ini sebelum tanggal yang ditentukan, jika tidak maka akan mengembalikan false. |
3 | Klon objek ( ) mengembalikan salinan objek ini. |
4 | int bandingkanTo(Tanggal tanggal) membandingkan objek Tanggal ketika metode ini dipanggil dengan tanggal yang ditentukan. Ketika keduanya sama, 0 dikembalikan. Jika objek pemanggil sebelum tanggal yang ditentukan, angka negatif akan dikembalikan. Objek pemanggil mengembalikan angka positif setelah tanggal yang ditentukan. |
5 | int bandingkanTo(Obj obj) Jika obj adalah tipe Tanggal, operasinya setara dengan bandingkanTo(Tanggal). Kalau tidak, ia akan memunculkan ClassCastException. |
6 | boolean sama dengan(Tanggal objek) mengembalikan nilai true ketika objek Tanggal yang memanggil metode ini sama dengan tanggal yang ditentukan, jika tidak maka akan mengembalikan nilai salah. |
7 | long getTime() mengembalikan jumlah milidetik yang diwakili oleh objek Tanggal ini sejak 1 Januari 1970 00:00:00 GMT. |
8 | int hashCode() mengembalikan nilai kode hash dari objek ini. |
9 | void setTime(long time) menyetel waktu dan tanggal menggunakan jumlah milidetik sejak 1 Januari 1970 00:00:00 GMT. |
10 | String toString() mengubah objek Tanggal menjadi representasi String dan mengembalikan string. |
Mendapatkan tanggal dan waktu saat ini di Java sangat sederhana. Gunakan metode toString() pada objek Date untuk mencetak tanggal dan waktu saat ini, seperti yang ditunjukkan di bawah ini:
import java.util.Date;
kelas publik Utama{
public static void main(String args[]) {
//Inisialisasi objek Tanggal Tanggal tanggal = Tanggal baru();
//Gunakan fungsi toString() untuk menampilkan tanggal dan waktu System.out.println(date.toString());
}
}
Hasil kompilasi dan running dari contoh di atas adalah sebagai berikut:
Sen 04 Mei 09:51:52 CDT 2013
Java menggunakan tiga metode berikut untuk membandingkan dua tanggal:
Gunakan metode getTime() untuk mendapatkan dua tanggal (jumlah milidetik sejak 1 Januari 1970), lalu bandingkan kedua nilai tersebut.
Gunakan metode sebelum(), setelah() dan sama dengan(). Misalnya, jika tanggal 12 suatu bulan lebih awal dari tanggal 18, maka new Date(99, 2, 12).before(new Date (99, 2, 18)) mengembalikan nilai true.
Gunakan metode bandingkanTo(), yang ditentukan oleh antarmuka Sebanding, dan kelas Tanggal mengimplementasikan antarmuka ini.
SimpleDateFormat adalah kelas untuk memformat dan menguraikan tanggal dengan cara yang peka terhadap lokal. SimpleDateFormat memungkinkan Anda memilih format tanggal dan waktu yang ditentukan pengguna untuk dijalankan. Misalnya:
import java.util.*;
import java.teks.*;
kelas publik Utama{
public static void main(String args[]) {
Tanggal dSekarang = Tanggal baru( );
SimpleDateFormat kaki =
new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz");
System.out.println("Tanggal Saat Ini: " + ft.format(dNow));
}
}
Hasil kompilasi dan running dari contoh di atas adalah sebagai berikut:
Tanggal Saat Ini: Minggu 18 Juli 2004 pukul 16:14:09 PDT
String pola waktu digunakan untuk menentukan format waktu. Dalam mode ini, semua huruf ASCII dicadangkan sebagai huruf pola, yang didefinisikan sebagai berikut:
surat | menggambarkan | Contoh |
---|---|---|
G | Tanda zaman | IKLAN |
kamu | empat digit tahun | 2001 |
M | bulan | Juli atau 07 |
D | tanggal | 10 |
H | AM/PM (1~12) format jam | 12 |
H | Jam dalam sehari (0~23) | dua puluh dua |
M | menit | 30 |
S | detik | 55 |
S | milidetik | 234 |
E | hari dalam seminggu | Selasa |
D | hari dalam setahun | 360 |
F | Hari dalam minggu dalam sebulan | 2 (Rabu kedua di bulan Juli) |
w | minggu dalam setahun | 40 |
W | Minggu dalam sebulan | 1 |
A | Tanda AM/PM | PM |
k | Jam dalam sehari (1~24) | dua puluh empat |
K | AM/PM (0~11) format jam | 10 |
z | zona waktu | Waktu Standar Timur |
' | pembatas teks | Pembatas |
" | kutipan tunggal | ` |
Metode printf memudahkan pemformatan waktu dan tanggal. Gunakan format dua huruf, yang dimulai dengan t dan diakhiri dengan huruf dari tabel di bawah. Misalnya:
import java.util.Date;
kelas publik Utama{
public static void main(String args[]) {
//Inisialisasi objek Tanggal Tanggal tanggal = Tanggal baru();
// Gunakan toString() untuk menampilkan tanggal dan waktu String str = String.format("Tanggal/Waktu Saat Ini : %tc", tanggal );
Sistem.keluar.printf(str);
}
}
Hasil kompilasi dan running dari contoh di atas adalah sebagai berikut:
Tanggal/Waktu Saat Ini: Sabtu 15 Des 16:37:57 MST 2012
Jika Anda perlu memberikan tanggal berulang kali, memformat setiap bagiannya dengan cara ini agak rumit. Oleh karena itu, string format dapat digunakan untuk menunjukkan indeks parameter yang akan diformat.
Indeks harus segera mengikuti % dan harus diakhiri dengan $. Misalnya:
import java.util.Date;
kelas publik Utama{
public static void main(String args[]) {
//Inisialisasi objek Tanggal Tanggal tanggal = Tanggal baru();
// Gunakan toString() untuk menampilkan tanggal dan waktu System.out.printf("%1$s %2$tB %2$td, %2$tY",
"Tanggal jatuh tempo:", tanggal);
}
}
Hasil kompilasi dan running dari contoh di atas adalah sebagai berikut:
Tanggal jatuh tempo: 09 Februari 2004
Alternatifnya, Anda dapat menggunakan tanda <. Ini menunjukkan bahwa parameter yang diformat sebelumnya akan digunakan kembali. Misalnya:
import java.util.Date;
kelas publik Utama{
public static void main(String args[]) {
//Inisialisasi objek Tanggal Tanggal tanggal = Tanggal baru();
// Menampilkan waktu pemformatan System.out.printf("%s %tB %<te, %<tY",
"Tanggal jatuh tempo:", tanggal);
}
}
Hasil kompilasi dan running dari contoh di atas adalah sebagai berikut:
Tanggal jatuh tempo: 09 Februari 2004
karakter | menggambarkan | contoh |
C | Tanggal dan waktu lengkap | Sen 04 Mei 09:51:52 CDT 2009 |
F | Tanggal format ISO 8601 | 2004-02-09 |
D | Tanggal format AS (bulan/hari/tahun) | 02/09/2004 |
T | 24 jam | 18:05:19 |
R | 12 jam | 18:05:19 |
R | Waktu 24 jam, tidak termasuk detik | 18:05 |
Y | Tahun 4 digit (termasuk 0 di depan) | 2004 |
kamu | 2 digit terakhir tahun (termasuk 0 di depan) | 04 |
C | 2 digit pertama tahun ini (termasuk 0 di depan) | 20 |
B | nama lengkap bulan | Februari |
B | singkatan bulan | Februari |
N | 2 digit bulan (termasuk 0 di depan) | 02 |
D | Tanggal 2 digit (termasuk awalan 0) | 03 |
e | Tanggal 2 digit (tidak termasuk 0 di depan) | 9 |
A | Nama lengkap minggu ini | Senin |
A | singkatan minggu | Senin |
J | Tahun 3 digit (termasuk 0 di depan) | 069 |
H | 2 digit jam (termasuk awalan 0), 00 hingga 23 | 18 |
k | 2 digit jam (tidak termasuk awalan 0), 0 hingga 23 | 18 |
SAYA | 2 digit jam (termasuk awalan 0), 01 hingga 12 | 06 |
aku | Jam 2 digit (tidak termasuk awalan 0), 1 hingga 12 | 6 |
M | Menit 2 digit (termasuk 0 di depan) | 05 |
S | Detik 2 digit (termasuk angka nol di depan) | 19 |
L | 3 digit milidetik (termasuk angka 0 di depan) | 047 |
N | nanodetik 9-bit (termasuk 0 di depan) | 047000000 |
P | tanda sore huruf besar | PM |
P | Tanda sore huruf kecil | pm |
z | Offset digital RFC 822 dari GMT | -0800 |
Z | zona waktu | PST |
S | Jumlah detik sejak 01-01-1970 00:00:00 GMT | 1078884319 |
Q | Sejak 1970-01-01 00:00:00 GMT | 1078884319047 |
Ada kelas terkait tanggal dan waktu berguna lainnya. Untuk lebih jelasnya, Anda dapat merujuk ke dokumentasi standar Java.
Kelas SimpleDateFormat memiliki beberapa metode tambahan, terutama parse(), yang mencoba mengurai string sesuai dengan penyimpanan yang diformat dari objek SimpleDateFormat tertentu. Misalnya:
import java.util.*;
import java.teks.*;
kelas publik Utama{
public static void main(String args[]) {
SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd");
Masukan string = args.length == 0 ? "11-11-1818" : args[0];
System.out.print(input + " Parsing sebagai ");
Tanggal t;
mencoba {
t = ft.parse(masukan);
Sistem.keluar.println(t);
} tangkapan (ParseException e) {
System.out.println("Tidak dapat diurai menggunakan " + ft);
}
}
}
Hasil kompilasi dan running dari contoh di atas adalah sebagai berikut:
$javaDateDemo
11-11-1818 Diurai pada Rabu 11 November 00:00:00 GMT 1818
$ java TanggalDemo 2007-12-01
01-12-2007 Diurai pada Sabtu 01 Des 00:00:00 GMT 2007
Jawa tidur(tidur)
Anda dapat mengalihkan program ke mode tidur selama satu milidetik atau selama komputer Anda masih menyala. Misalnya, program berikut tertidur selama 3 detik:
import java.util.*;
kelas publik Utama{
public static void main(String args[]) {
mencoba {
System.out.println(Tanggal baru( ) + "n");
Thread.tidur(5*60*10);
System.out.println(Tanggal baru( ) + "n");
} tangkapan (Pengecualian e) {
System.out.println("Mendapat pengecualian!");
}
}
}
Hasil kompilasi dan running dari contoh di atas adalah sebagai berikut:
Minggu 03 Mei 18:04:41 GMT 2009
Minggu 03 Mei 18:04:44 GMT 2009
Contoh di bawah ini menunjukkan cara mengukur interval waktu dalam milidetik:
import java.util.*;
kelas publik Utama{
public static void main(String args[]) {
mencoba {
mulai panjang = System.currentTimeMillis();
System.out.println(Tanggal baru( ) + "n");
Thread.tidur(5*60*10);
System.out.println(Tanggal baru( ) + "n");
ujung panjang = Sistem.currentTimeMillis();
perbedaan panjang = akhir - mulai;
System.out.println("Selisihnya adalah : " + beda);
} tangkapan (Pengecualian e) {
System.out.println("Mendapat pengecualian!");
}
}
}
Hasil kompilasi dan running dari contoh di atas adalah sebagai berikut:
Minggu 03 Mei 18:16:51 GMT 2009
Minggu 03 Mei 18:16:54 GMT 2009
Perbedaannya adalah: 3050
Sekarang kita dapat memformat dan membuat objek tanggal, tetapi bagaimana kita dapat mengatur dan mendapatkan bagian tertentu dari data tanggal, seperti jam, hari, atau menit? Dan bagaimana kita dapat menambah atau mengurangi nilai dari bagian tanggal tersebut ? Apa? Jawabannya adalah dengan menggunakan kelas Kalender.
Kelas Kalender jauh lebih kuat daripada kelas Tanggal, dan implementasinya juga lebih kompleks daripada kelas Tanggal.
Kelas Kalender adalah kelas abstrak yang mengimplementasikan objek dari subkelas tertentu dalam penggunaan aktual. Proses pembuatan objek bersifat transparan bagi pemrogram, dan hanya perlu dibuat menggunakan metode getInstance.
Kalender c = Calendar.getInstance();//Defaultnya adalah tanggal saat ini
Untuk menggunakan kelas Kalender untuk mewakili waktu tertentu, Anda harus terlebih dahulu membuat objek Kalender, lalu mengatur parameter tahun, bulan, dan hari di objek agar selesai.
//Membuat objek Kalender yang mewakili Kalender 12 Juni 2009 c1 = Calendar.getInstance();
c1.set(2009, 6 - 1, 12);
Konstanta ini digunakan di kelas Kalender untuk mewakili arti yang berbeda. Banyak kelas di jdk yang sebenarnya mengadopsi gagasan ini.
konstan | menggambarkan |
---|---|
Kalender.TAHUN | bertahun-tahun |
Kalender.BULAN | bulan |
Kalender.TANGGAL | tanggal |
Kalender.DAY_OF_MONTH | Tanggal memiliki arti yang persis sama dengan kolom di atas |
Kalender.JAM | jam dalam jam 12 jam |
Kalender.HOUR_OF_DAY | jam dalam waktu 24 jam |
Kalender.MENIT | menit |
Kalender. KEDUA | Kedua |
Kalender.DAY_OF_WEEK | hari dalam seminggu |
Tetapkan pengaturan
menyukai:
Kalender c1 = Kalender.getInstance();
Panggilan:
kumpulan kekosongan akhir publik (int tahun,int bulan,int tanggal)
c1.set(2009, 6 - 1, 12);//Mengatur tahun, bulan dan hari objek Kalender c1 sebagai: 2009, 5, 12
Gunakan pengaturan jenis bidang
Jika Anda hanya menetapkan nilai bidang tertentu, seperti tanggal, Anda dapat menggunakan metode set berikut:
kumpulan kekosongan publik (bidang int, nilai int)
Tetapkan tanggal yang diwakili oleh objek c1 ke tanggal 10, dan semua nilai lainnya akan dihitung ulang
c1.set(Kalender.TANGGAL,10);
Tetapkan tahun yang diwakili oleh objek c1 ke 2008, dan semua nilai lainnya akan dihitung ulang
c1.set(Kalender.TAHUN,2008);
Arti dari kumpulan atribut bidang lainnya dapat disimpulkan dengan analogi.
Tambahkan pengaturan
Kalender c1 = Kalender.getInstance();
Tambahkan 10 pada tanggal objek c1, yaitu tanggal 10 hari setelah tanggal yang diwakili oleh c1.
c1.add(Kalender.TANGGAL, 10);
Kurangi 10 dari tanggal objek c1, yaitu tanggal 10 hari sebelum tanggal yang diwakili oleh c1.
c1.add(Kalender.TANGGAL, -10);
Arti penambahan atribut field lainnya dapat disimpulkan dengan analogi.
Kalender c1 = Kalender.getInstance();
// Dapatkan tahun int year = c1.get(Calendar.YEAR);
// Dapatkan bulannya int bulan = c1.get(Calendar.MONTH) + 1;
// Dapatkan tanggal int date = c1.get(Calendar.DATE);
// Dapatkan jamnya int hour = c1.get(Calendar.HOUR_OF_DAY);
// Dapatkan menitnya int menit = c1.get(Calendar.MINUTE);
// Dapatkan yang kedua int second = c1.get(Calendar.SECOND);
// Mendapatkan hari dalam seminggu (catatan (ini berbeda dengan kelas Date): 1 mewakili Minggu, 2 mewakili minggu 1, 3 mewakili Selasa, dan seterusnya)
int hari = c1.get(Kalender.DAY_OF_WEEK);
Kelas Kalender mengimplementasikan kalender Gregorian, dan GregorianCalendar adalah implementasi spesifik dari kelas Kalender.
Metode getInstance() Kalender mengembalikan objek GregorianCalendar yang diinisialisasi secara default dengan lokal dan zona waktu saat ini. GregorianCalendar mendefinisikan dua bidang: AD dan BC. Ini mewakili dua era yang ditentukan oleh kalender Gregorian.
Di bawah ini tercantum beberapa konstruktor objek GregorianCalendar:
nomor seri | Konstruktor dan deskripsi |
1 | GregorianCalendar() Membuat GregorianCalendar default menggunakan waktu saat ini di zona waktu default dengan lokal default. |
2 | GregorianCalendar(int tahun, int bulan, int tanggal) Membuat GregorianCalendar dengan pengaturan tanggal tertentu di zona waktu default dengan lokal default |
3 | GregorianCalendar(int tahun, int bulan, int tanggal, int jam, int menit) Membuat GregorianCalendar dengan pengaturan tanggal dan waktu tertentu untuk zona waktu default dengan lokal default. |
4 | GregorianCalendar(int tahun, int bulan, tanggal int, jam int, menit int, int detik) Membuat GregorianCalendar dengan pengaturan tanggal dan waktu tertentu untuk zona waktu default dengan lokal default. |
5 | GregorianCalendar(Locale aLocale) Membuat GregorianCalendar berdasarkan waktu saat ini di zona waktu default dengan lokal tertentu. |
6 | GregorianCalendar(TimeZone zone) Membuat GregorianCalendar berdasarkan waktu saat ini di zona waktu tertentu dengan lokal default. |
7 | GregorianCalendar(TimeZone zone, Locale aLocale) Membuat GregorianCalendar berdasarkan waktu saat ini di zona waktu tertentu dengan lokal tertentu. |
Berikut adalah daftar beberapa metode berguna yang disediakan oleh kelas GregorianCalendar:
nomor seri | Metode dan instruksi |
1 | void add(int field, int amount) Menambahkan jumlah waktu yang ditentukan (ditandatangani) ke bidang kalender tertentu sesuai dengan aturan kalender. |
2 | protected void computeFields() mengonversi nilai milidetik UTC menjadi nilai domain waktu |
3 | protected void computeTime() menimpa Kalender dan mengonversi nilai domain waktu menjadi milidetik UTC |
4 | boolean sama dengan (Object obj) Membandingkan GregorianCalendar ini dengan Object yang ditentukan. |
5 | int get(int field) mendapatkan nilai waktu dari bidang yang ditentukan |
6 | int getActualMaximum(int field) mengembalikan tanggal saat ini, nilai maksimum dari field yang diberikan |
7 | int getActualMinimum(int field) mengembalikan tanggal saat ini, nilai minimum dari field yang diberikan |
8 | int getGreatestMinimum(int field) Mengembalikan nilai minimum tertinggi untuk bidang kalender tertentu dalam instance GregorianCalendar ini. |
9 | Date getGregorianChange() Mendapatkan tanggal perubahan kalender Gregorian. |
10 | int getLeastMaximum(int field) Mengembalikan nilai maksimum terendah dari bidang kalender yang diberikan untuk instance GregorianCalendar ini |
11 | int getMaximum(int field) Mengembalikan nilai maksimum bidang kalender yang diberikan untuk instance GregorianCalendar ini. |
12 | Tanggal getTime() mendapatkan waktu kalender saat ini. |
13 | long getTimeInMillis() mendapatkan waktu kalender saat ini yang diwakili oleh bilangan bulat panjang |
14 | TimeZone getTimeZone() mendapatkan zona waktu. |
15 | int getMinimum(int field) mengembalikan nilai minimum dari field yang diberikan. |
16 | int kode hash() menggantikan kode hash. |
17 | boolean isLeapYear(int year) menentukan apakah tahun tertentu merupakan tahun kabisat. |
18 | void roll(int field, boolean up) Menambah atau mengurangi (atas/bawah) satu unit waktu dari field waktu tertentu, tanpa mengubah field yang lebih besar. |
19 | void set(int field, int value) menyetel bidang waktu dengan nilai yang diberikan. |
20 | void set(int tahun, int bulan, int tanggal) menetapkan nilai tahun, bulan dan hari. |
dua puluh satu | void set(int tahun, int bulan, int tanggal, int jam, int menit) menetapkan nilai tahun, bulan, hari, jam dan menit. |
dua puluh dua | void set(int tahun, int bulan, int tanggal, int jam, int menit, int detik) menetapkan nilai tahun, bulan, hari, jam, menit, dan detik. |
dua puluh tiga | void setGregorianChange(Tanggal tanggal) menetapkan tanggal perubahan GregorianCalendar. |
dua puluh empat | void setTime(Tanggal tanggal) menyetel waktu Kalender saat ini dengan tanggal tertentu. |
25 | void setTimeInMillis(long millis) menyetel waktu Kalender saat ini dengan milidetik panjang yang ditentukan. |
26 | void setTimeZone(Nilai TimeZone) Menyetel zona waktu saat ini dengan nilai zona waktu tertentu. |
27 | String toString() mengembalikan string yang mewakili kalender. |
import java.util.*;
kelas publik GregorianCalendarDemo {
public static void main(String args[]) {
String bulan[] = {
"Jan", "Feb", "Mar", "Apr",
"Mei", "Jun", "Jul", "Agustus",
"Sep", "Oktober", "Nov", "Des"};
tahun ke dalam;
// Inisialisasi kalender Gregorian // Gunakan waktu dan tanggal saat ini // Defaultnya adalah waktu dan zona waktu lokal GregorianCalendar gcalendar = new GregorianCalendar();
// Menampilkan informasi waktu dan tanggal saat ini System.out.print("Tanggal: ");
System.out.print(bulan[gcalendar.get(Calendar.MONTH)]);
System.out.print(" " + gcalendar.get(Calendar.DATE) + " ");
System.out.println(tahun = gcalendar.get(Calendar.YEAR));
System.out.print("Waktu: ");
System.out.print(gcalendar.get(Calendar.HOUR) + ":");
System.out.print(gcalendar.get(Calendar.MINUTE) + ":");
System.out.println(gcalendar.get(Calendar.SECOND));
// Uji apakah tahun ini merupakan tahun kabisat if(gcalendar.isLeapYear(year)) {
System.out.println("Tahun ini adalah tahun kabisat");
}
kalau tidak {
System.out.println("Tahun ini bukan tahun kabisat");
}
}
}
Hasil kompilasi dan running dari contoh di atas adalah sebagai berikut:
Tanggal: 22 April 2009
Waktu: 11:25:27
Tahun sekarang bukanlah tahun kabisat
Untuk daftar lengkap kelas Kalender, Anda dapat merujuk ke dokumentasi Java standar.