Se per SPLIT di stringhe intendi estrarre una sottostringa, esiste il metodo substring. Quello che chiedi tu non è complicatissimo da fare, solo che non ho capito se, all'inizio, la data viene rappresentata come stringa unica, come 3 stringhe differenti per giorno, mese, anno o se hai a disposizione tali dati in formato numerico. Se, ad esempio, la tua data è SEMPRE nel formato GG MM AAAA (ossia, sempre 2 cifre per il giorno, 2 cifre per il mese e 4 cifre per l'anno), allora si può procedere nel seguente modo (caso in cui la data sia contenuta in una stringa unica, il più complesso):
Se i campi fossero già separati in stringhe indipendenti oppure fossero in formato numerico rappresentati da 3 interi, la prima parte (i substring) si può facilmente saltare.codice:String miaData = "10/11/2004"; //Nota: è indifferente che ci siano gli slash o degli spazi come separatore // Estraggo i vari campi come stringhe String giorno = miaData.substring(0, 2); String mese = miaData.substring(3, 5); String anno = miaData.substring(6, 10); // Ora converto in intero l'anno, perchè devo operare matematicamente int annoIntero = Integer.parseInt(anno); annoIntero -= 1900 // Noto che l'anno viene messo in complemento a 1900 // Ora costruisco la nuova stringa con la data nel formato DB2: String nuovaData = "" + annoIntero + mese + giorno
Il problema vero sorge quando si deve convertire da formato DB2 (anno_mese_giorno con anno in complemento a 1900). Ma anche questo si può fare semplicemente, basta prendere un piccolo accorgimento, per le date inferiori al 2000:
Ciao.codice:String dataDB2 = "1041110"; // Controllo se la data è posteriore o anteriore al 2000: if (dataDB2.length() > 6) { // La data è posteriore al 2000 String anno = dataDB2.substring(0, 3); String mese = dataDB2.substring(3, 5); String giorno = dataDB2.substring(5, 7); } else { // La data è anteriore al 2000 String anno = dataDB2.substring(0, 2); String mese = dataDB2.substring(2, 4); String giorno = dataDB2.substring(4, 6); } // Opero il calcolo sull'anno: int annoIntero = Integer.parseInt(anno) + 1900; // Torno al formato GG/MM/AA della data String data = giorno + "/" + mese + "/" + annoIntero;![]()



Rispondi quotando