Latest web development tutorials

Java Data Ora

package java.util Data fornisce le classi per incapsulare la data e l'ora corrente. classe Date prevede due costruttori per istanziare un oggetto Date.

Il primo costruttore utilizza la data e l'ora correnti per inizializzare l'oggetto.

Date( )

Il secondo costruttore accetta un parametro, che è il numero di millisecondi dal 1 gennaio 1970.

Date(long millisec)

Dopo aver creato l'oggetto Date, è possibile chiamare il seguente metodo.

No. Metodo e Descrizione
1 boolean dopo (data Data)
Se questo metodo viene chiamato quando l'oggetto data successiva alla data specificata restituisce true, altrimenti restituisce false.
2 boolean prima (data Data)
Se questo metodo viene chiamato quando l'oggetto Date prima della data specificata restituisce true, altrimenti restituisce false.
3 clone di Object ()
Restituisce una copia di questo oggetto.
4 int compareTo (data Data)
Confronta questo metodo viene chiamato quando l'oggetto Date alla data specificata. Ritorna 0 quando i due sono uguali. Chiamare oggetto prima della data indicata restituisce un numero negativo. Chiamare oggetto dopo la data indicata ha restituito un numero positivo.
5 int compareTo (Object obj)
Se obj è di tipo data, l'operazione è equivalente a compareTo (Data). In caso contrario, si getta ClassCastException.
6 boolean equals (data Object)
Quando si chiama questo metodo e l'oggetto Date è uguale alla data specificata al ritorno vero, altrimenti restituisce false.
7 lungo getTime ()
Restituisce il numero di millisecondi dal 1 gennaio, 1970 00:00:00 GMT rappresentato da questo oggetto Date.
8 int hashCode ()
Restituisce il valore del codice hash per questo oggetto.
9 setTime void (da tempo)

Auto 1 gennaio 1970 millisecondi 00:00:00 GMT poi tempo per impostare l'ora e la data.
10 String toString ()
Conversione Data rappresentazione dell'oggetto String, e restituisce la stringa.

Ottenere la data e l'ora correnti

Java ottiene la data e l'ora corrente è molto semplice, utilizzare il metodo Data oggetto toString () per stampare la data e l'ora corrente nel seguente modo:

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

Gli esempi sopra risultati elaborati sono i seguenti:

Mon May 04 09:51:52 CDT 2013

Confronta date

Java utilizza tre metodi per confrontare le due date seguenti:

  • Utilizzare il metodo getTime () per ottenere due date (1 gennaio 1970 attraverso il numero di millisecondi trascorsi), quindi confrontare i due valori.
  • Utilizzare prima (), dopo () e equals (). Ad esempio, un mese prima di 12 18, la nuova data (99, 2, 12) .prima (new Date (99, 2, 18)) restituisce true.
  • Utilizzare il metodo compareTo (), che è definito dalla interfaccia Comparable, classe Date implementa questa interfaccia.

L'uso SimpleDateFormat per formattare le date

Classe SimpleDateFormat è un modo locale sensibile per la formattazione e le date di parsing. SimpleDateFormat consente di selezionare una data formato utente personalizzata e il tempo per l'esecuzione. Ad esempio:

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

Gli esempi sopra risultati elaborati sono i seguenti:

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

la codifica in formato semplice DateFormat

Il tempo stringa modello viene utilizzato per specificare il formato dell'ora. In questo modo, tutte le lettere ASCII sono riservati come lettere modello sono definiti come segue:

lettera descrizione esempio
sol era marchio AD
y quattro anni 2001
M mese Luglio o 07
d mese 10
h AM / PM formato (1 ~ 12) ore 12
H L'ora del giorno (0 a 23) 22
m Il numero di minuti 30
s secondi 55
S millisecondi 234
E Giorno della settimana martedì
D Giorno dell'anno 360
F Le prime settimane del mese della settimana 2 (seconda mer nel mese di luglio)
w Le prime settimane dell'anno 40
W Le prime settimane del mese 1
un AM / PM marchio PM
k L'ora del giorno (da 1 a 24) 24
K AM / PM formato (0 ~ 11) ore 10
z Fuso orario Eastern Standard Time
' delimitatore di testo delimitatore
" virgolette singole `

date Usa formato printf

metodo printf può essere facilmente formattato ora e la data. Utilizza formato a due lettere, inizia con t e nella seguente tabella alla fine di una lettera. Ad esempio:

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

Gli esempi sopra risultati elaborati sono i seguenti:

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

Se è necessario ripetere la data di offerta, quindi utilizzare questo metodo per formattare ogni parte di esso è un po 'complicato. Così, è possibile utilizzare una stringa di formato indicato da formattare parametro index.

L'indice deve immediatamente% dietro, e deve terminare con $. Ad esempio:

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

Gli esempi sopra risultati elaborati sono i seguenti:

Due date: February 09, 2004

In alternativa, è possibile utilizzare il <flag. Essa mostra precedentemente formattata parametri da utilizzare di nuovo. Ad esempio:

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

Gli esempi sopra risultati elaborati sono i seguenti:

Due date: February 09, 2004

I caratteri di conversione di data e ora

carattere descrizione esempio
c Completo di data e ora Lun 4 Mag 2009 09:51:52 CDT
F ISO formato data 8601 2004-02-09
D US formato della data (mese / giorno / anno) 02/09/2004
T Tempo 24 ore 18:05:19
R 12 ore 06:05:19
R tempo di 24 ore, non include secondi 18:05
Y 4 anno (con uno zero) 2004
y Dopo due anni (con uno zero) 04
C 2 anni fa (con uno zero) 20
B Nome completo mese febbraio
B mese Acronimo febbraio
n 2 mesi (con uno zero) 02
d 2 giorni (con uno zero) 03
e 2 giorni (senza lo 0) 9
la Settimana nome completo lunedi
un settimana corta Mon
j 3 anni (con uno zero) 069
H 2 ore (con uno zero), 00-23 18
k 2 ore (senza lo 0), 0-23 18
io 2 ore (con uno zero), 01-12 06
l 2 ore (senza lo 0), 1-12 6
M 2 minuti (con uno zero) 05
S 2 secondi (con uno zero) 19
L 3 ms (con uno zero) 047
N 9 ns (con uno zero) 047.000.000
P Capitalizzati nel pomeriggio di bandiera PM
p Nel pomeriggio del logo minuscolo pm
z Offset da GMT in RFC 822 Digital -0800
Z Fuso orario PST
s Il numero di secondi dal 1970-01-01 00:00:00 GMT 1078884319
Q Dal momento che 1970-01-01 00:00:00 GMT centesimi meraviglioso 1078884319047

Ci sono altri data e l'ora della classe utile. Per maggiori dettagli, è possibile consultare la documentazione standard di Java.


L'analisi di una stringa in un tempo

Classe SimpleDateFormat ha alcuni metodi aggiuntivi, in particolare parse (), che hanno cercato di seguire un determinato formato di archiviazione oggetto SimpleDateFormat per analizzare la stringa. Ad esempio:

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

Gli esempi sopra risultati elaborati sono i seguenti:

$ 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 dormiente (sonno)

sleep () rende il filo corrente allo stato stagnante (blocca il thread corrente), in modo che l'utilizzo della CPU, scopo è quello di mantenere solo thread corrente occupare risorse della CPU ottenuti nel processo di lasciare un certo tempo al caso un'altra thread di esecuzione.

È possibile lasciare che il programma di sonno un millisecondo lungo periodo di tempo o ad uno qualsiasi della vita del vostro computer. Ad esempio, il seguente programma dormire tre secondi:

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!"); 
      }
   }
}

Gli esempi sopra risultati elaborati sono i seguenti:

Thu Sep 17 10:20:30 CST 2015

Thu Sep 17 10:20:33 CST 2015

tempo di misura

Ecco un esempio che mostra come misurare gli intervalli di tempo (in millisecondi):

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!");
      }
   }
}

Gli esempi sopra risultati elaborati sono i seguenti:

Fri Jan 08 09:48:47 CST 2016

Fri Jan 08 09:48:50 CST 2016

Difference is : 3019

Classe Calendario

Siamo ora in grado di formattare e creare un oggetto data, ma come possiamo impostare e recuperare una parte specifica di essa dati aggiornati, come ore, giorni o minuti? Come possiamo in queste parti della data più o meno ? la risposta è quella di utilizzare categoria calendario.

Molte caratteristiche potenti rispetto alla classe calendario classe Date, ma anche nella realizzazione del complesso classe Date.

classe Calendar è una classe astratta che implementa una specifica sottoclasse di oggetti in uso, la creazione di oggetti è trasparente al programmatore deve solo essere creato per utilizzare il metodo getInstance.

Creare un oggetto calendario che rappresenta la data corrente del sistema

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

Creare una data di calendario oggetto specificato

Utilizzare la classe Calendar rappresenta un momento particolare, è necessario creare prima un oggetto calendario, e quindi imposta i parametri di data oggetto da completare.

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

Calendario tipo di classe campo oggetto

Tipo di calendario utilizzato in queste costanti rappresentano significati diversi, molti pensavano questa classe vengono effettivamente utilizzati all'interno del JDK

costante descrizione
Calendar.YEAR anni
Calendar.MONTH mese
Calendar.DATE data
Calendar.DAY_OF_MONTH Data e identico al campi sopra significato
Calendar.HOUR ora 12 ore
Calendar.HOUR_OF_DAY ora 24 ore
Calendar.MINUTE minuto
Calendar.SECOND secondo
Calendar.DAY_OF_WEEK Giorno della settimana

Impostazione del calendario informazioni oggetto di classe

set impostazioni

Come ad esempio:

Calendar c1 = Calendar.getInstance();

chiamata:

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

Utilizzare le impostazioni del tipo di campo

Se solo impostare un campo, come la data valore può essere impostato utilizzando i seguenti metodi:

public void set(int field,int value)

L'oggetto Date C1 è impostato su 10, tutti gli altri valori vengono ricalcolati

c1.set(Calendar.DATE,10);

L'oggetto rappresenta la C1 anno è impostato al 2008, tutti gli altri valori vengono ricalcolati

c1.set(Calendar.YEAR,2008);

Significato di altre proprietà del campo impostato in modo

Aggiungere Impostazione

Calendar c1 = Calendar.getInstance();

La data prevista più 10 C1, C1 si esprime anche come 10 giorni dopo la data, tutti gli altri valori vengono ricalcolati

c1.add(Calendar.DATE, 10);

La data prevista meno 10 C1, C1 è anche espresso in data 10 giorni fa, tutti gli altri valori verranno ricalcolati

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

aggiungere un significato altre proprietà dei campi in modo

oggetto classe Calendar per ottenere informazioni

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

classe GregorianCalendar

classe Calendar implementa il calendario gregoriano, classe GregorianCalendar Calendar è una implementazione concreta.

Calendario di getInstance () restituisce un valore predefinito con l'attuale locale e il fuso orario inizializzata oggetto GregorianCalendar. GregorianCalendar definisce due campi: AD e BC. Questi rappresentano due calendario definito l'epoca.

Di seguito sono elencati un costruttore oggetto GregorianCalendar alcuni:

No. Costruttore e Descrizione
1 GregorianCalendar ()
Quando si ha l'impostazione internazionale predefinita fuso orario predefinito Costruisce una corrente di default GregorianCalendar.
2 GregorianCalendar (anno int, int mese, la data int)
Quando si ha la zona predefinita internazionale predefinita Costruisce una GregorianCalendar con il dato data fissata
3 GregorianCalendar (anno int, int mese, la data int, int ora, int minuto)
Avere un locale di default fuso orario predefinito per GregorianCalendar Costruisce un dato impostazioni di data e ora.
4 GregorianCalendar (anno int, int mese, la data int, int ora, int minuto, int secondo)
Avere un locale di default fuso orario predefinito per GregorianCalendar Costruisce un dato impostazioni di data e ora.
5 GregorianCalendar (Locale aLocale)
Quando si deve impostare l'area internazionale predefinita Costruisce un tempo corrente in base GregorianCalendar.
6 GregorianCalendar (zona fuso orario)
Nel locale di default dato il fuso orario costruire una GregorianCalendar in base al tempo corrente.
7 GregorianCalendar (zona TimeZone, Locale aLocale)
In un dato locale determinato fuso orario Costruisce un GregorianCalendar in base al tempo corrente.

Ecco un elenco di classe GregorianCalendar fornisce alcuni metodi utili:

No. Metodo e Descrizione
1 void add (campo int, int importo )
Secondo le regole del calendario specificati (firmato) quantità di tempo per il dato campo calendario.
2 computeFields vuoto protette ()
UTC conversione ms valore di soglia di tempo
3 protetto computeTime void ()
Coprendo calendario, Converte i valori dei campi di tempo per UTC come millisecondi
4 boolean equals (obj Object)
Confronta questo GregorianCalendar per l'oggetto Object specificato.
5 int ottenere (campo int)
Ottiene il valore temporale del campo specificato
6 int getActualMaximum (int campo)
Restituisce la data corrente, il valore massimo di un determinato campo
7 int getActualMinimum (int campo)
Restituisce la data corrente, il valore minimo di un determinato campo
8 int getGreatestMinimum (int campo)
GregorianCalendar Restituisce il più alto valore minimo per il dato campo calendario.
9 Data getGregorianChange ()
Ottenere gregoriano data di cambiamento.
10 int getLeastMaximum (int campo)
I ritorni questa istanza GregorianCalendar di un determinato campo di calendario il valore massimo più basso
11 int getMaximum (int campo)
Restituisce GregorianCalendar esempio dato il massimo campo di calendario.
12 Data getTime ()
Prendi il tempo del calendario corrente.
13 getTimeInMillis lungo ()
Ottenere un calendario con una rappresentazione intero lungo del tempo corrente
14 TimeZone getTimeZone ()
Ottenere il fuso orario.
15 int getMinimum (int campo)
Ritorno al valore minimo di un determinato campo.
16 int hashCode ()
Riscrivere hashCode.
17 booleano ANNO.BISESTILE (int anno)
Determina se il dato anno è un anno bisestile.
18 rotolo vuoto (campo int, boolean up )
Sul dato campo tempo per aggiungere o sottrarre una singola unità di tempo (alto / basso), senza modificare campi più grandi.
19 insieme vuoto (campo int, int value )
Con il dato campo valore di tempo.
20 set void (int anno, int mese , la data int)
Impostare l'anno, il valore del mese e giorno.
21 set void (int anno, int mese , la data int, int ora, int minuto)
Impostare l'anno, mese, giorno, ora, minuto valore.
22 set void (int anno, int mese , la data int, int ora, int minuto, int secondo)
Impostare l'anno, ora, minuto e secondo i valori del mese, giorno.
23 setGregorianChange vuoto (data Data)
Imposta la data di cambiamento GregorianCalendar.
24 setTime vuoto (data Data)
Con il tempo l'attuale determinata data set di calendario.
25 setTimeInMillis vuoto (lungo Millis)
Con un certo numero di tipo long ore sono adesso di serie millisecondi calendario.
26 setTimeZone vuoto (valore fuso orario)
Con le impostazioni di fuso orario per il fuso orario corrente.
27 String toString ()
Restituisce una stringa che rappresenta il calendario.

Esempi

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("当前年份不是闰年");
      }
   }
}

Gli esempi sopra risultati elaborati sono i seguenti:

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