Latest web development tutorials

Java Tanggal Waktu

Tanggal paket java.util menyediakan kelas untuk merangkum tanggal dan waktu. Tanggal kelas menyediakan dua konstruktor untuk instantiate objek tanggal.

Konstruktor pertama menggunakan tanggal dan waktu untuk menginisialisasi objek.

Date( )

Konstruktor kedua menerima parameter, yang merupakan jumlah milidetik sejak 1 Januari 1970 dari.

Date(long millisec)

Setelah objek Tanggal dibuat, Anda dapat memanggil metode berikut.

Tidak. Metode dan Deskripsi
1 boolean setelah (tanggal Date)
Jika metode ini disebut ketika objek Tanggal setelah tanggal yang ditentukan mengembalikan nilai true, jika tidak maka kembali palsu.
2 boolean sebelum (tanggal Date)
Jika metode ini disebut ketika objek Tanggal sebelum tanggal yang ditentukan mengembalikan nilai true, jika tidak maka kembali palsu.
3 Objek clone ()
Mengembalikan salinan objek ini.
4 int compareTo (tanggal Date)
Bandingkan metode ini disebut ketika objek Tanggal untuk tanggal yang ditentukan. Kembali 0 ketika dua adalah sama. Memanggil objek sebelum tanggal yang ditentukan mengembalikan angka negatif. Memanggil objek setelah tanggal yang ditentukan kembali angka positif.
5 int compareTo (Object obj)
Jika obj adalah tipe Tanggal, operasi setara dengan compareTo (Tanggal). Jika tidak, itu melempar ClassCastException.
6 boolean equals (tanggal Object)
Ketika Anda memanggil metode ini dan objek Tanggal sama dengan tanggal yang ditentukan ketika kembali benar, jika tidak kembali palsu.
7 getTime panjang ()
Ia mengembalikan jumlah milidetik sejak 1 Januari 1970 00:00:00 GMT diwakili oleh objek Tanggal ini.
8 int hashCode ()
Mengembalikan nilai kode hash untuk objek ini.
9 kekosongan setTime (lama)

Diri 1 Januari waktu 1970 00:00:00 GMT milidetik kemudian untuk mengatur waktu dan tanggal.
10 String toString ()
Konversi Tanggal String objek representasi, dan mengembalikan string.

Dapatkan tanggal dan waktu

Java mendapat tanggal dan waktu sangat sederhana, menggunakan metode Tanggal objek toString () untuk mencetak tanggal dan waktu sebagai berikut:

import java.util.Date;
  
public class DateDemo {
   public static void main(String args[]) {
       // 初始化 Date 对象
       Date date = new Date();
        
       // 使用 toString() 函数显示日期时间
       System.out.println(date.toString());
   }
}

Contoh di atas hasil disusun adalah sebagai berikut:

Mon May 04 09:51:52 CDT 2013

bandingkan tanggal

Java menggunakan tiga metode untuk membandingkan dua tanggal berikut:

  • Menggunakan metode getTime () untuk mendapatkan dua tanggal (1 Januari 1970 sampai jumlah milidetik sejak), kemudian membandingkan dua nilai.
  • Gunakan sebelum (), setelah () dan equals (). Misalnya, sebulan sebelumnya 12 dari 18, Tanggal baru (99, 2, 12) .before (Tanggal baru (99, 2, 18)) mengembalikan nilai true.
  • Gunakan compareTo () metode, yang didefinisikan oleh antarmuka Sebanding, Tanggal kelas mengimplementasikan interface ini.

Penggunaan SimpleDateFormat untuk tanggal Format

kelas SimpleDateFormat adalah cara yang lokal-sensitif untuk format dan tanggal parsing. SimpleDateFormat memungkinkan Anda untuk memilih format tanggal pengguna kustom dan waktu untuk menjalankan. Sebagai contoh:

import java.util.*;
import java.text.*;

public class DateDemo {
   public static void main(String args[]) {

      Date dNow = new Date( );
      SimpleDateFormat ft = 
      new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz");

      System.out.println("Current Date: " + ft.format(dNow));
   }
}

Contoh di atas hasil disusun adalah sebagai berikut:

Current Date: Sun 2004.07.18 at 04:14:09 PM PDT

format pengkodean sederhana DateFormat

Waktu pola string digunakan untuk menentukan format waktu. Dalam mode ini, semua huruf ASCII disimpan sebagai huruf pola didefinisikan sebagai berikut:

surat deskripsi contoh
G mark era AD
y empat tahun 2001
M bulan Juli atau 07
d tanggal bulan 10
h AM / PM Format (1 ~ 12) jam 12
H Jam hari (0-23) 22
m Jumlah menit 30
s detik 55
S milidetik 234
E Hari dalam seminggu Selasa
D Hari dalam setahun 360
F Minggu-minggu pertama bulan dalam seminggu 2 (kedua Wed. pada bulan Juli)
w Beberapa minggu pertama tahun ini 40
W Minggu-minggu pertama bulan 1
sebuah AM / mark PM PM
k Jam hari (1 sampai 24) 24
K AM / PM Format (0 ~ 11) jam 10
z wilayah waktu Waktu Standar Timur
' teks pembatas pembatas
" tanda petik tunggal `

tanggal menggunakan format printf

Metode printf dapat dengan mudah diformat waktu dan tanggal. Gunakan format dua huruf, dimulai dengan t dan pada tabel berikut pada akhir surat. Sebagai contoh:

import java.util.Date;

public class DateDemo {

  public static void main(String args[]) {
     // 初始化 Date 对象
     Date date = new Date();

     // 使用toString()显示日期和时间
     String str = String.format("Current Date/Time : %tc", date );

     System.out.printf(str);
  }
}

Contoh di atas hasil disusun adalah sebagai berikut:

Current Date/Time : Sat Dec 15 16:37:57 MST 2012

Jika Anda perlu mengulang tanggal ditawarkan, kemudian menggunakan metode ini untuk memformat setiap bagian dari itu agak rumit. Dengan demikian, Anda dapat menggunakan format string menunjuk diformat parameter indeks.

Indeks harus segera% di belakang, dan harus diakhiri dengan $. Sebagai contoh:

import java.util.Date;
  
public class DateDemo {

   public static void main(String args[]) {
       // 初始化 Date 对象
       Date date = new Date();
        
       // 使用toString()显示日期和时间
       System.out.printf("%1$s %2$tB %2$td, %2$tY", 
                         "Due date:", date);
   }
}

Contoh di atas hasil disusun adalah sebagai berikut:

Due date: February 09, 2004

Atau, Anda dapat menggunakan <bendera. Ini menunjukkan diformat sebelumnya parameter yang akan digunakan lagi. Sebagai contoh:

import java.util.Date;
  
public class DateDemo {

   public static void main(String args[]) {
       // 初始化 Date 对象
       Date date = new Date();
        
       // 显示格式化时间
       System.out.printf("%s %tB %<te, %<tY", 
                         "Due date:", date);
   }
}

Contoh di atas hasil disusun adalah sebagai berikut:

Due date: February 09, 2004

Tanggal dan waktu konversi karakter

karakter deskripsi contoh
c Lengkap Tanggal dan Waktu Mon 4 Mei 09:51:52 CDT 2009
F tanggal Format 8601 ISO 2004/02/09
D US format tanggal (bulan / hari / tahun) 2004/02/09
T Waktu 24 jam 18:05:19
r waktu 12 jam 06:05:19
R waktu 24 jam, tidak termasuk detik 18:05
Y 4 Tahun (dengan nol) 2004
y Setelah dua tahun (dengan nol) 04
C 2 tahun yang lalu (dengan nol) 20
B Nama lengkap bulan Februari
b bulan Akronim Februari
n 2 bulan (dengan nol) 02
d 2 hari (dengan nol) 03
e 2 hari (tanpa awalan 0) 9
A Minggu nama lengkap Senin
sebuah seminggu pendek mon
j 3 tahun (dengan nol) 069
H 2 jam (dengan nol), 00-23 18
k 2 jam (tanpa awalan 0), 0-23 18
saya 2 jam (dengan nol), 01-12 06
l 2 jam (tanpa awalan 0), 1-12 6
M 2 menit (dengan nol) 05
S 2 detik (dengan nol) 19
L 3 ms (dengan nol) 047
N 9 ns (dengan nol) 047.000.000
P Dikapitalisasi pada sore hari bendera PM
p Pada sore hari logo huruf kecil pm
z Offset dari GMT di RFC 822 Digital -0800
Z wilayah waktu PST
s Jumlah detik sejak 1970/01/01 00:00:00 GMT 1078884319
Q Sejak 1970/01/01 00:00:00 GMT sen indah 1078884319047

Ada tanggal lain yang berguna dan waktu kelas. Untuk lebih jelasnya, Anda bisa merujuk ke Jawa dokumentasi standar.


Parsing string ke waktu

kelas SimpleDateFormat memiliki beberapa metode tambahan, terutama mengurai (), yang mencoba mengikuti SimpleDateFormat format penyimpanan objek yang diberikan untuk mengurai string. Sebagai contoh:

import java.util.*;
import java.text.*;
  
public class DateDemo {

   public static void main(String args[]) {
      SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd"); 

      String input = args.length == 0 ? "1818-11-11" : args[0]; 

      System.out.print(input + " Parses as "); 

      Date t; 

      try { 
          t = ft.parse(input); 
          System.out.println(t); 
      } catch (ParseException e) { 
          System.out.println("Unparseable using " + ft); 
      }
   }
}

Contoh di atas hasil disusun adalah sebagai berikut:

$ java DateDemo
1818-11-11 Parses as Wed Nov 11 00:00:00 GMT 1818
$ java DateDemo 2007-12-01
2007-12-01 Parses as Sat Dec 01 00:00:00 GMT 2007

Java aktif (tidur)

tidur () membuat thread saat ini menjadi negara stagnan (blok thread saat), sehingga penggunaan CPU, tujuannya adalah untuk menjaga thread saat sendirian menempati sumber daya CPU yang diperoleh dalam proses untuk meninggalkan beberapa waktu untuk kesempatan thread lain eksekusi.

Anda dapat membiarkan program tidur satu milidetik jangka waktu yang panjang atau untuk setiap kehidupan komputer Anda. Misalnya, program berikut akan tidur tiga detik:

import java.util.*;
  
public class SleepDemo {
   public static void main(String args[]) {
      try { 
         System.out.println(new Date( ) + "\n"); 
         Thread.sleep(1000*3);   // 休眠3秒
         System.out.println(new Date( ) + "\n"); 
      } catch (Exception e) { 
          System.out.println("Got an exception!"); 
      }
   }
}

Contoh di atas hasil disusun adalah sebagai berikut:

Thu Sep 17 10:20:30 CST 2015

Thu Sep 17 10:20:33 CST 2015

mengukur waktu

Berikut ini adalah contoh yang menunjukkan bagaimana mengukur interval waktu (dalam milidetik):

import java.util.*;
  
public class DiffDemo {

   public static void main(String args[]) {
      try {
         long start = System.currentTimeMillis( );
         System.out.println(new Date( ) + "\n");
         Thread.sleep(5*60*10);
         System.out.println(new Date( ) + "\n");
         long end = System.currentTimeMillis( );
         long diff = end - start;
         System.out.println("Difference is : " + diff);
      } catch (Exception e) {
         System.out.println("Got an exception!");
      }
   }
}

Contoh di atas hasil disusun adalah sebagai berikut:

Fri Jan 08 09:48:47 CST 2016

Fri Jan 08 09:48:50 CST 2016

Difference is : 3019

kelas Kalender

Kami sekarang dapat memformat dan membuat objek tanggal, tapi bagaimana kita dapat mengatur dan mengambil bagian tertentu dari itu data tanggal, seperti jam, hari, atau menit? Bagaimana kita di daerah ini dari tanggal plus atau minus ? jawabannya adalah dengan menggunakan kategori Kalender.

Banyak fitur kuat dari kelas Kalender Tanggal kelas, tetapi juga dalam pelaksanaan dari kompleks Tanggal kelas.

kelas Kalender adalah kelas abstrak yang mengimplementasikan sub-kelas tertentu objek dalam pelaksanaannya, penciptaan benda-benda transparan untuk programmer hanya perlu dibuat untuk menggunakan metode getInstance.

Membuat objek Kalender mewakili tanggal sistem saat ini

Calendar c = Calendar.getInstance();//默认是当前日期

Buat tanggal kalender objek tertentu

Menggunakan kelas Kalender merupakan waktu tertentu, Anda harus terlebih dahulu membuat objek Kalender, dan kemudian menetapkan parameter tanggal objek untuk menyelesaikan.

//创建一个代表2009年6月12日的Calendar对象
Calendar c1 = Calendar.getInstance();
c1.set(2009, 6 - 1, 12);

Kalender jenis bidang objek kelas

Jenis kalender yang digunakan di konstanta ini mewakili arti yang berbeda, banyak pemikiran kelas ini benar-benar digunakan dalam jdk yang

konstan deskripsi
Calendar.YEAR tahun
Calendar.MONTH bulan
Calendar.DATE tanggal
Calendar.DAY_OF_MONTH Tanggal, dan identik dengan atas bidang signifikansi
Calendar.HOUR 12 jam jam
Calendar.HOUR_OF_DAY 24 jam jam
Calendar.MINUTE menit
Calendar.SECOND kedua
Calendar.DAY_OF_WEEK Hari dalam seminggu

Mengatur Kalender informasi objek kelas

pengaturan set

Seperti:

Calendar c1 = Calendar.getInstance();

Call:

public final void set(int year,int month,int date)
c1.set(2009, 6 - 1, 12);//把Calendar对象c1的年月日分别设这为:2009、6、12

Gunakan pengaturan jenis lapangan

Jika hanya menetapkan bidang, seperti tanggal nilai dapat diatur menggunakan metode berikut:

public void set(int field,int value)

Tanggal objek mewakili c1 diatur ke 10, semua nilai-nilai lain yang dihitung ulang

c1.set(Calendar.DATE,10);

objek mewakili para c1 tahun diatur ke 2008, semua nilai-nilai lain yang dihitung ulang

c1.set(Calendar.YEAR,2008);

Arti sifat bidang lainnya yang ditetapkan sehingga

Tambahkan Pengaturan

Calendar c1 = Calendar.getInstance();

Tanggal Target ditambah 10 c1, c1 juga dinyatakan sebagai 10 hari setelah tanggal, semua nilai-nilai lain yang dihitung ulang

c1.add(Calendar.DATE, 10);

Tanggal Target minus 10 c1, c1 juga dinyatakan sebagai tanggal 10 hari yang lalu, semua nilai-nilai lain akan dihitung ulang

<pre>c1.add(Calendar.DATE, -10);

menambah arti sifat bidang lain sehingga

objek kelas kalender untuk mendapatkan informasi

Calendar c1 = Calendar.getInstance();
// 获得年份
int year = c1.get(Calendar.YEAR);
// 获得月份
int month = c1.get(Calendar.MONTH) + 1;
// 获得日期
int date = c1.get(Calendar.DATE);
// 获得小时
int hour = c1.get(Calendar.HOUR_OF_DAY);
// 获得分钟
int minute = c1.get(Calendar.MINUTE);
// 获得秒
int second = c1.get(Calendar.SECOND);
// 获得星期几(注意(这个与Date类是不同的):1代表星期日、2代表星期1、3代表星期二,以此类推)
int day = c1.get(Calendar.DAY_OF_WEEK);

kelas GregorianCalendar

kelas kalender mengimplementasikan kalender Gregorian, kelas GregorianCalendar kalender adalah implementasi konkret.

Kalender getInstance () method mengembalikan default dengan lokal dan zona waktu saat ini diinisialisasi GregorianCalendar objek. GregorianCalendar mendefinisikan dua bidang: AD dan BC. Ini mewakili dua kalender didefinisikan era.

Di bawah ini adalah GregorianCalendar objek konstruktor beberapa:

Tidak. Konstruktor dan Deskripsi
1 GregorianCalendar ()
Bila Anda memiliki default lokal zona waktu default Membangun default GregorianCalendar saat ini.
2 GregorianCalendar (int tahun, int bulan, tanggal int)
Bila Anda memiliki zona default lokal default Membangun sebuah GregorianCalendar dengan tanggal yang diberikan set
3 GregorianCalendar (int tahun, int bulan, tanggal int, int jam, int menit)
Memiliki standar lokal zona waktu default untuk GregorianCalendar Membangun diberikan pengaturan tanggal dan waktu.
4 GregorianCalendar (int tahun, int bulan, tanggal int, int jam, int menit, int detik)
Memiliki standar lokal zona waktu default untuk GregorianCalendar Membangun diberikan pengaturan tanggal dan waktu.
5 GregorianCalendar (Lokal aLocale)
Bila Anda memiliki untuk menetapkan area lokal default Membangun waktu saat ini berdasarkan GregorianCalendar.
6 GregorianCalendar (zona TimeZone)
Dalam default lokal zona diberikan waktu membangun GregorianCalendar berdasarkan waktu saat ini.
7 GregorianCalendar (zona TimeZone, Lokal aLocale)
Di zona waktu yang diberikan lokal yang diberikan Membangun sebuah GregorianCalendar berdasarkan waktu saat ini.

Berikut adalah daftar kelas GregorianCalendar memberikan beberapa metode yang berguna:

Tidak. Metode dan Deskripsi
1 kekosongan add (int lapangan, int jumlah )
Menurut aturan kalender yang ditentukan (ditandatangani) jumlah waktu ke lapangan kalender yang diberikan.
2 void dilindungi computeFields ()
UTC konversi ms nilai ambang batas waktu
3 void dilindungi computeTime ()
Meliputi Kalender, Mengubah nilai waktu lapangan untuk UTC sebagai milidetik
4 boolean equals (Object obj)
Membandingkan GregorianCalendar ini ke Obyek ditentukan.
5 int mendapatkan (int lapangan)
Mendapat nilai waktu dari bidang tertentu
6 int getActualMaximum (int lapangan)
Mengembalikan tanggal, nilai maksimum bidang tertentu
7 int getActualMinimum (int lapangan)
Mengembalikan tanggal, nilai minimum bidang tertentu
8 int getGreatestMinimum (int lapangan)
GregorianCalendar Mengembalikan minimum nilai tertinggi untuk bidang kalender yang diberikan.
9 Tanggal getGregorianChange ()
Dapatkan tanggal perubahan Gregorian.
10 int getLeastMaximum (int lapangan)
Pengembalian ini contoh GregorianCalendar dari lapangan kalender tertentu terendah nilai maksimum
11 int getMaximum (int lapangan)
Pengembalian GregorianCalendar contoh yang diberikan bidang kalender maksimum.
12 Tanggal getTime ()
Mendapatkan waktu kalender saat ini.
13 getTimeInMillis panjang ()
Dapatkan kalender dengan representasi integer panjang dari waktu saat ini
14 TimeZone getTimeZone ()
Dapatkan zona waktu.
15 int getMinimum (int lapangan)
Kembali ke nilai minimum bidang tertentu.
16 int hashCode ()
Menulis ulang kode hash.
17 boolean isLeapYear (int tahun)
Menentukan apakah tahun tertentu adalah tahun kabisat.
18 kekosongan roll (lapangan int, boolean up )
Di lapangan waktu yang diberikan untuk menambah atau mengurangi satu unit waktu (up / down), tanpa mengubah bidang yang lebih besar.
19 kekosongan set (int lapangan, nilai int )
Dengan bidang nilai waktu yang diberikan.
20 kekosongan set (int tahun, int bulan , tanggal int)
Menetapkan tahun, nilai bulan dan hari.
21 kekosongan set (int tahun, int bulan , tanggal int, int jam, int menit)
Mengatur tahun, bulan, hari, jam, menit nilai.
22 kekosongan set (int tahun, int bulan , tanggal int, int jam, int menit, int detik)
Mengatur tahun, jam, menit, dan nilai-nilai kedua bulan, hari.
23 kekosongan setGregorianChange (tanggal Date)
Menetapkan tanggal perubahan GregorianCalendar.
24 kekosongan setTime (tanggal Date)
Dengan waktu yang diberikan tanggal ditetapkan Kalender arus.
25 kekosongan setTimeInMillis (millis panjang)
Dengan angka yang diberikan tipe lama waktu yang ditetapkan milidetik Kalender saat ini.
26 kekosongan setTimeZone (nilai TimeZone)
Dengan pengaturan zona waktu ke zona waktu saat ini.
27 String toString ()
Mengembalikan string yang mewakili kalender.

contoh

import java.util.*;
  
public class GregorianCalendarDemo {

   public static void main(String args[]) {
      String months[] = {
      "Jan", "Feb", "Mar", "Apr",
      "May", "Jun", "Jul", "Aug",
      "Sep", "Oct", "Nov", "Dec"};
      
      int year;
      // 初始化 Gregorian 日历
      // 使用当前时间和日期
      // 默认为本地时间和时区
      GregorianCalendar gcalendar = new GregorianCalendar();
      // 显示当前时间和日期的信息
      System.out.print("Date: ");
      System.out.print(months[gcalendar.get(Calendar.MONTH)]);
      System.out.print(" " + gcalendar.get(Calendar.DATE) + " ");
      System.out.println(year = gcalendar.get(Calendar.YEAR));
      System.out.print("Time: ");
      System.out.print(gcalendar.get(Calendar.HOUR) + ":");
      System.out.print(gcalendar.get(Calendar.MINUTE) + ":");
      System.out.println(gcalendar.get(Calendar.SECOND));
      
      // 测试当前年份是否为闰年
      if(gcalendar.isLeapYear(year)) {
         System.out.println("当前年份是闰年");
      }
      else {
         System.out.println("当前年份不是闰年");
      }
   }
}

Contoh di atas hasil disusun adalah sebagai berikut:

Date: Apr 22 2009
Time: 11:25:27
当前年份不是闰年