View Full Version : Problema Java
Warbarbie
17th February 2011, 19:06
Cioè almeno credo che sia Java.
In pratica io prendo in Input 2 campi stringa, rispettivamente rappresentano mese e anno, li concateno col formato MM-yyyy
Ora io sti 2 campi concatenati li devo inserire in una tabella in una colonna che è un tipo date.
Sto diventando scemo, esiste una classe java che mi converte la stringa in data dopo averla letta?
Hador
17th February 2011, 19:10
http://www.google.it/search?q=convert+string+date&sourceid=opera&num=0&ie=utf-8&oe=utf-8
-_-
cmq date è deprecato.
Eltarion
17th February 2011, 19:14
hahahahahaah che pacco !! :P
comunque è un problema che affligge tutti i programmatori prima o poi :nod:
Warbarbie
17th February 2011, 19:35
Già googlato, quella non va QQ
Axet
17th February 2011, 19:52
Scusa eh ma con tabella cosa intendi? Un db?
Perchè l'ultima volta che ho avuto a che fare con date e un db (era mysql) gli passavo una stringa che poi il dmbs trattava come date :nod:
Dr.Doomed
17th February 2011, 20:18
Magari dico una fesseria, ma non mi risulta si possa creare un'istanza di Date senza il valore dei giorni, sbaglio? Temo sia li` il tuo problema.
Hai provato a creare la data partendo da una String che contenga anche tale informazione, ossia nel formato dd-mm-yyyy (per convenzione potresti considerare come giorno il primo del mese), per poi visualizzarne eventualmente solo i valori di mese e anno nelle viste?
Amiag
17th February 2011, 20:18
la classe che cerchi è SimpleDateFormat
ma visto che ti serve solo mese e anno fai a prima ad istanziarla tu a mano una Date ed a impostargli mese ed anno
Kat
17th February 2011, 20:54
la classe che cerchi è SimpleDateFormat
*
Basta il primo esempio del link di Hador, che cosa non ti funziona?
Bakaras
17th February 2011, 21:18
Come ti hanno già detto, i campi di tipo date , datetime short o datetime long, hanno bisogno che in input il dato sia formattato Aa dovere, il che vuol dire che minimo gli devi mettere anche il giorno ovvero : dd-mm-yyyy o combinazioni diverse dovute a regional settings della macchina
Sent from my HTC Desire using Tapatalk
Warbarbie
17th February 2011, 23:42
Boh domani provo a passargli il formato data completo mettendo il giorno ad 1 di default.
@Axet si deve andare tutto in un db(mysql per ora), ma a passargli la stringa "mm-yyyy" mi da errore QQ
thx
Axet
18th February 2011, 01:15
Ovvio che ti da errore, mm-yyyy non è una formattazione lecita lol.
Cazzo di data è senza il giorno?
Tunnel
18th February 2011, 11:02
Diobono che fail
Warbarbie
18th February 2011, 12:16
Oh non funziona.
E poi cazzo di informatici se io voglio un formato data solo di mese e anno dovreste pensare anche a queste esigenze
Potrei concatenare 2 formati data così mi elimino il problema di riportarli a date da string?
pd
Ladro di anime
18th February 2011, 12:29
Oh non funziona.
E poi cazzo di informatici se io voglio un formato data solo di mese e anno dovreste pensare anche a queste esigenze
Potrei concatenare 2 formati data così mi elimino il problema di riportarli a date da string
pd
Te <> DB.
In oracle il formato base per l'inserimento di una data in formato stringa in un campo date prevede il mese in formato mon, cioè le prime 3 lettere del mese ('1-gen-10','3-feb-10', etc..).
Prova a vedere se è lo stesso con mysql.
Warbarbie
18th February 2011, 12:33
Allora mi sono arrivate lamentele circa il fatto che non si capisce un cazzo.
Ho in input un txt con dei campi, tra cui 2 che rappresentano rispettivamente mese ed anno, separati da un ";"
Finalità del tutto è inserire tutti sti campi in una tabella su db, va tutto ok tranne per sta merda di capo data, che su db ha la formattazione "dd-mm-yyyy"
quindi
File txt -----> Tabella db
Il campo date sulla tabella è un "data", quindi ci deve arrivare la concatenazione dei 2 campi di cui sopra, visto che non so come e se si può concatenare 2 campi data li ho trasformati in string, concatenati e tentato di inserire in tabella, ma non funge.
E' possibile non trasformarli in string e concatenare i 2 campi lasciandoli con il tipo data?
Warbarbie
18th February 2011, 12:37
Te <> DB.
In oracle il formato base per l'inserimento di una data in formato stringa in un campo date prevede il mese in formato mon, cioè le prime 3 lettere del mese ('1-gen-10','3-feb-10', etc..).
Prova a vedere se è lo stesso con mysql.
Io non ce voglio lavorare sui db :(
Dr.Doomed
18th February 2011, 12:42
package warbarbiefail;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
public class FailDate {
public static void main(String argv[]){
String str = "02-2011";
DateFormat df = new SimpleDateFormat("MM-yyyy");
try{
Date wardate = df.parse(str);
System.out.println(wardate.toString());
}catch (Exception e){
System.out.println(e);
}
}
}
Output: Tue Feb 01 00:00:00 CET 2011
Sembra funzionare... quindi si possono fare le date in formato MM-yyyy. Notare che se scrivi "mm" ti ci imposta i minuti invece che i mesi.
Ladro di anime
18th February 2011, 12:42
Io non ce voglio lavorare sui db :(
Meglio :sneer:
Hador
18th February 2011, 12:47
si ma non è che stai fallendo il tipo, il date che vuole in input di che package è -_-
Warbarbie
18th February 2011, 13:01
parseDateLocale("dd-MM-yyyy",out1.DATA_CONSEGNA,"EN")
Risolto co sto pezzo di codice, ma so dovuto passare per forza da un xls prima di inserire su db-.-
Che merda Java e che merda i DB
Vi voglio bene tutti
@Hador/Axet/informatici quando avrete tempo in futuro inventate un codice più semplice thx
Amiag
18th February 2011, 13:47
Che merda Java e che merda i DB
sei te che non sei bono so tipo 3 righe di codice
vai a fare il commerciale :nod:
no cmq a onor del vero la gestione delle date in java è sempre stata na merda, infatti l'han cambiata diverse volte
Axet
18th February 2011, 13:50
Un .xls? :look:
Cmq war c'era una soluzione molto più semplice: aggiungevi a tutte le date il giorno (per tutte il primo del mese ad esempio) e lo inserivi così nel db. Quando lo leggi salti i primi 3 caratteri e ti trovi con solo MM-yyyy :nod:
Warbarbie
18th February 2011, 14:54
Un .xls? :look:
Cmq war c'era una soluzione molto più semplice: aggiungevi a tutte le date il giorno (per tutte il primo del mese ad esempio) e lo inserivi così nel db. Quando lo leggi salti i primi 3 caratteri e ti trovi con solo MM-yyyy :nod:
Si ma probabile che i report dovranno tagliare sto cavolo di giorno messo così a caso.
Rosico perchè non so implementare una classe in Java, talend non mi dava la possibilità di fare string to date come volevo io.
Cmq risolto gg thx a tutti
Bakaras
18th February 2011, 15:00
no cmq a onor del vero la gestione delle date in java è sempre stata na merda, infatti l'han cambiata diverse volte
E' una merda in tutti i linguaggi.
Ladro di anime
18th February 2011, 15:27
Io in sql non ho mai avuto problemi a gestirmi le date.
Axet
18th February 2011, 15:31
Si ma probabile che i report dovranno tagliare sto cavolo di giorno messo così a caso.
Si ovvio, se nel file di input ci sono solo mese e anno vuol dire che il giorno non è rilevante.
Ergo usando un sistema come quello descritto quando vai a leggere la data dal db dovresti tagliare le prime tre posizioni della stringa (cioè "dd-") in modo tale da ottenere il formato originario MM-yyyy.
Rosico perchè non so implementare una classe in Java, talend non mi dava la possibilità di fare string to date come volevo io.
Cmq risolto gg thx a tutti
In che senso non sai implementare una classe java? A livello sintattico è una stronzata, la difficoltà chiaramente varia in funzione di quello che la classe deve fare.
Kat
18th February 2011, 19:28
Ma scusa quando poi leggi la data dal db va a finire in un oggetto Date da cui puoi estrarre le stringhe (con il formatter di cui sopra) per i tuoi report formattate come piu ti piacciono.
Warbarbie
18th February 2011, 20:29
Ma scusa quando poi leggi la data dal db va a finire in un oggetto Date da cui puoi estrarre le stringhe (con il formatter di cui sopra) per i tuoi report formattate come piu ti piacciono.
Si ma io uso talend per i processi ETL e non ha(o almeno io non la conosco) una classe già integrata per fare il toString to Date come serviva a me, e di implementarla a mano io non sono capace
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions Inc. All rights reserved.