PDA

Visualizza la versione completa : [JSP] data corrente


Kneos
01-03-2005, 18:11
Salve a tutto il forum,

mi dite come e possibile ottenere la data corrente in jsp nel formato 01/03/2005??

Questo dato "data" deve poi essere inserito in un db tramite un INSERT quindi ho bisogno che sia esattamente nel formato che ho specificato qui sopra.

Mi servirebbe inoltre anche l'ora corrente e anche il corrispondente di time() di php cioe l'attuale data e orario misurata in numero di secondi dalla Unix Epoch.

Qualcuno puo aiutarmi? Grazie a tutti

pippo75
01-03-2005, 19:00
per la data puoi utilizzare il simpleDateFormat
SimpleDateFormat sdf = new SimpleDateFormat("gg/MM/yyyy"); //oppure il formato che vuoi tu
string data = sdf.parse(new Date());

ma se lo devi inserire nel db, a meno che il relativo campo non sia di tipo stringa, mi pare più conveniente utilizzare un oggetto data, no?

invece con System.getCurrentTimeInMillis() ottieni il numero di millisecondi a partire dall'01/01/70
se ti va bene uguale ..

Kneos
01-03-2005, 19:22
Si la data nel db e in romato stringa o meglio varchar quindi va bene cosi, mi puoi solo dire quali java importare per avere a disposizione sia SimpleDateFormat che parse(new Date());

Riguardo il time in millisecondi puo andar bene, lo dividero per 1000 prendendo l'approssimazione della divisione a patto che esista in jsp un funzione che arrotonda ma immagino di si.

Scusa l'ignoranza ma il mio approccio a jsp e java in generale e molto scarso, sono abituato troppo bene con php. :dhò: :)

pippo75
01-03-2005, 19:41
java.util.* e java.text.*

per l'arrotondamento basta un
int secondi = (int) millisecondi / 1000;

non ci giurerei, ma dovrebbe funzionare

Kneos
01-03-2005, 19:51
Riguardo il discorso millisecondi funziona ma solo se usi long al posto di int giustamente, mentre per la data mi da un errore sul caricamento della pagina. "The type Date is ambiguous" forse Date è definito in piu classi e non sa quale prendere. Non saprei.

Hai idea del perche?

Grazie di tutto.

pippo75
01-03-2005, 19:57
perchè hai importato anche la classe java.sql.*, vero?
in effetti Date è definito anche lì
se ti serve solo la data come giorno e non anche ore, minuti e secondi, basta java.sql.Date, altrimenti devi usare quella in java.util, e al momento della dichiarazione devi fornire il package completo, altrimenti il compilatore si incazza

Kneos
01-03-2005, 20:05
Le istruzioni che uso sono quelle che mi hai passato e cioè

SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
String data = sdf.parse(new Date());

Se tolgo il package java.util.* mi da i seguaneti errori:

1) Type mismatch: cannot convert from Date to String
2) The method parse(String, ParsePosition) in the type SimpleDateFormat is not applicable for the arguments (Date)
3)The constructor Date() is undefined

Nel caso in cui io usi String data = sdf.parse(new java.util.Date()); e cioe specificare il package al momento della dichiarazione (intendevi cosi???) mi da gli errori 1) e 2).

:confused:

pippo75
02-03-2005, 10:08
scusa, sbagliato io! :stordita:
a programmare a memoria si fanno alle volte ste cappelle...
il metodo giusto è format, non parse

Kneos
02-03-2005, 11:06
Nessun problema figurati :) avevo gia provveduto a cercare il metodo giusto per questa cosa e anch io ho trovato format, quindi adesso funziona tutto.

Grazie ancora

P.s. una piccola curiosità, in jsp a quanto mi e parso si capire per ricevere parametri da una pagina all'altra o via get o con form si usa request.getParameter("nome_parametro") che restituisce una stringa, ma se il parametro che passa è intero tipo scelta=1 che puoi usare per fare i test se eseguire una parte di codice oppure no come lo tiro su se getParameter restitiusce sempre una stringa?

Grazie 1000

pippo75
02-03-2005, 11:11
ti parserizzi la stringa come intero:
Integer.parseInt(stringa);

Loading