JSP - Data di trattamento

In questo capitolo, discuteremo come gestire i dati in JSP. Uno dei vantaggi più importanti dell'utilizzo di JSP è che è possibile utilizzare tutti i metodi disponibili in Java core. Ti guideremo attraverso ilDate class che è disponibile in java.utilpacchetto; questa classe incapsula la data e l'ora correnti.

La classe Date supporta due costruttori. Il primo costruttore inizializza l'oggetto con la data e l'ora correnti.

Date( )

Il costruttore seguente accetta un argomento che è uguale al numero di millisecondi trascorsi dalla mezzanotte del 1 gennaio 1970.

Date(long millisec)

Una volta che hai a disposizione un oggetto Date, puoi chiamare uno dei seguenti metodi di supporto per giocare con le date:

S.No. Metodi e descrizione
1

boolean after(Date date)

Restituisce true se l'oggetto Date che richiama contiene una data successiva a quella specificata da date, altrimenti restituisce false.

2

boolean before(Date date)

Restituisce true se l'oggetto Date che richiama contiene una data precedente a quella specificata da date, altrimenti restituisce false.

3

Object clone( )

Duplica l'oggetto Date che richiama.

4

int compareTo(Date date)

Confronta il valore dell'oggetto richiamante con quello di date. Restituisce 0 se i valori sono uguali. Restituisce un valore negativo se l'oggetto che richiama è precedente alla data. Restituisce un valore positivo se l'oggetto che richiama è successivo alla data.

5

int compareTo(Object obj)

Funziona in modo identico a compareTo (Date) se obj è della classe Date. In caso contrario, genera un'eccezione ClassCastException.

6

boolean equals(Object date)

Restituisce true se l'oggetto Date che richiama contiene la stessa ora e data di quella specificata da date, altrimenti restituisce false.

7

long getTime( )

Restituisce il numero di millisecondi trascorsi dal 1 gennaio 1970.

8

int hashCode( )

Restituisce un codice hash per l'oggetto invocante.

9

void setTime(long time)

Imposta l'ora e la data come specificato da time, che rappresenta il tempo trascorso in millisecondi dalla mezzanotte del 1 gennaio 1970

10

String toString( )

Converte l'oggetto Date che richiama in una stringa e restituisce il risultato.

Ottenere la data e l'ora correnti

Con il programma JSP, è molto facile ottenere la data e l'ora correnti. È possibile utilizzare un semplice oggetto Date con l'estensionetoString() metodo per stampare la data e l'ora correnti come segue:

<%@ page import = "java.io.*,java.util.*, javax.servlet.*" %>

<html>
   <head>
      <title>Display Current Date & Time</title>
   </head>
   
   <body>
      <center>
         <h1>Display Current Date & Time</h1>
      </center>
      <%
         Date date = new Date();
         out.print( "<h2 align = \"center\">" +date.toString()+"</h2>");
      %>
   </body>
</html>

Cerchiamo ora di mantenere il codice in CurrentDate.jsp e quindi chiama questo JSP utilizzando l'URL http://localhost:8080/CurrentDate.jsp. Riceverai il seguente risultato:

Display Current Date & Time

Mon Jun 21 21:46:49 GMT+04:00 2010

Aggiorna la pagina con il URL http://localhost:8080/CurrentDate.jsp. Troverai la differenza in pochi secondi ogni volta che ti aggiorni.

Confronto delle date

Come discusso nelle sezioni precedenti, è possibile utilizzare tutti i metodi Java disponibili negli script JSP. Nel caso in cui sia necessario confrontare due date, considerare i seguenti metodi:

  • Puoi usare getTime( ) per ottenere il numero di millisecondi trascorsi dalla mezzanotte del 1 gennaio 1970 per entrambi gli oggetti e quindi confrontare questi due valori.

  • Puoi usare i metodi before( ), after( ), e equals( )perché il 12 del mese viene prima del 18; per esempio,new Date(99, 2, 12).before(new Date (99, 2, 18)) restituisce true.

  • Puoi usare il file compareTo( )metodo; questo metodo è definito daComparable interface e implementato da Date.

Formattazione della data utilizzando SimpleDateFormat

SimpleDateFormat è una classe concreta per la formattazione e l'analisi delle date in modo sensibile alle impostazioni locali. SimpleDateFormat consente di iniziare scegliendo qualsiasi modello definito dall'utente per la formattazione della data e dell'ora.

Modifichiamo l'esempio sopra come segue:

<%@ page import = "java.io.*,java.util.*" %>
<%@ page import = "javax.servlet.*,java.text.*" %>

<html>
   <head>
      <title>Display Current Date & Time</title>
   </head>
   
   <body>
      <center>
         <h1>Display Current Date & Time</h1>
      </center>
      <%
         Date dNow = new Date( );
         SimpleDateFormat ft = 
         new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz");
         out.print( "<h2 align=\"center\">" + ft.format(dNow) + "</h2>");
      %>
   </body>
</html>

Compilare nuovamente il servlet precedente e quindi chiamare questo servlet utilizzando l'URL http://localhost:8080/CurrentDate. Riceverai il seguente risultato:

Display Current Date & Time

Mon 2010.06.21 at 10:06:44 PM GMT+04:00

Codici di formato DateFormat semplici

Per specificare il formato dell'ora, utilizzare una stringa del modello dell'ora. In questo modello, tutte le lettere ASCII sono riservate come lettere del modello, che sono definite come segue:

Personaggio Descrizione Esempio
G Designatore di epoca ANNO DOMINI
y Anno in quattro cifre 2001
M Mese nell'anno Luglio o 07
d Giorno in mese 0
h Ora AM / PM (1 ~ 12) 2
H Ora nel giorno (0 ~ 23) 22
m Minuto in ora 30
S Secondo in minuto 55
S Millisecondo 234
E Giorno in settimana martedì
D Giorno dell'anno 360
F Giorno della settimana nel mese 2 (secondo mercoledì di luglio)
w Settimana nell'anno 40
W Settimana al mese
un Indicatore AM / PM PM
K Ora nel giorno (1 ~ 24) 24
K Ora AM / PM (0 ~ 11) 0
z Fuso orario Ora solare orientale
' Fuga per il testo Delimitatore
" Virgoletta singola "

Per un elenco completo dei metodi disponibili costanti per manipolare la data, è possibile fare riferimento alla documentazione Java standard.