Newsgroup: it.comp.java
Titolo: gestione Date

Ciao ragazzi!
Ho bisogno del vostro aiuto perchè sto realizzando un progetto con jsp 
dove mi serve necessariamente riuscire a gestire una data/ora che poi 
andra inserita in un DB di Access.
Avrei bisogno principalmente di fare 2 cose:
1) un parse da String a Date
2) mentre la seconda è riuscire ad incrementare la data (es: aumentare 
la data di un giorno oppure un mese o magari un anno)
-----------------------------------------------------------------------
Per quanto riguarda il parse ho fatto una ricerca, ma alcune cose non mi 
sono tanto chiare, la sintassi del parse sarebbe:
import java.text.SimpleDateFormat;
......
......
......
SimpleDateFormat formatoData = new SimpleDateFormat("dd-MMM-yyyy 
HH:mm:ss", Locale.US); // posso tralasciare Locale.US?
.......
.......
Date miaNuovaData = formatoData.parse("24-Feb-1998 17:39:35");
// che tipo di eccezione genera?
//questa sintassi è corretta? In oltre mi la data nel DB viene 
memorizzata nel formato: 28/10/2004 01.03.45
------------------------------------------------------------------------
per quanto riguarda l'incremento della data non ho nessuna conoscenza, 
so' solo che si può pare!
grazie in anticipo!
--
Stica

 so' solo che si può pare!
http://java.sun.com/j2se/1.4.2/docs/api/java/util/Calendar.html
In rete c'e' una quantità smodata di tuotorial e articoli su come gestire 
le date, per non parlare della documentazione Sun; una ricerchina sarebbe 
stata piu' indicata :)
ciao,
-- 
daniele

 grazie in anticipo!
Di nulla ;)
e studia bene la documentazione... è la Bibbia di ogni programmatore Java!
-- 
Fermiamo Scientology prima che sia troppo tardi!!!
http://xenu.com-it.net
 - 
http://xenu.freewinds.cx/
(per rispondere personalmente leva IlDitoDalCulo)

 
Certo che si può fare, e la classe Calendar può esserti d'aiuto.
 
http://java.sun.com/j2se/1.4.2/docs/api/java/util/Calendar.html
In breve, costruisci un oggetto Calendar e imposti alla data e ora contenute
nel tuo Date:
   Calendar myCal=Calendar.getInstance();
   myCal.setTime(miaNuovaData);
...e ora fai il tuo incremento, supponiamo di 3 giorni:
   myCal.add(Calendar.DATE,3);
Se (per esempio) dovresti invece sottrarre 5 ore:
   myCal.add(Calendar.HOUR_OF_DAY,-5);


 
Grazie dell'aiuto, sono riuscito a far incrementare la data, ma ora ho 
un piccolissimo problema ulteriore!
Purtroppo questa data deve essere memorizzata in una tupla, e dato che 
il calendar mi restituisce date in questo formato:
Fri Jan 02 00:00:00 CET 2004  che non viene accettato dal DB, č 
possibile impostare il formato del calendar, o magari poterlo 
riconvertire in java.util.date al quale posso impostare il formato?
Sono andato a vedere le specifiche ma non riesco a trovarlo!
--
Stica

 Fri Jan 02 00:00:00 CET 2004
Quello che vedi č solo la *rappresentazione testuale* della data contenuta
nel Calendar. La JVM avrebbe potuto scegliere un'altro formato per dirti
cosa c'č dentro, cosě come Access ne avrebbe potuto scegliere ancora uno
diverso, tutti rappresentanti della stessa data e ora. Se usi bene i metodi
della classe java.sql.PreparedStatement _te ne puoi altamente fregare_ del
formato testuale, che entra in gioco solo in due momenti:
1) leggere data/ora dall'input dell'utente
2) convertire data/ora in un formato umanamente leggibile
Nient'altro.
