Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    2

    Passaggio argomento data

    Ciao a tutti, sono un neofita di Java, sto studiando alacremente ma mi sono imbattuto in un problemino che probabilmente avrà una soluzione banale ma per me non immediata.
    Avendo un metodo che prevede come parametro una data:
    - Che tipo è meglio usare? Date? GregorianCalendar?
    - In quale formato devo passare l'argomento es. 30/06/2013, considerando il tipo scelto?
    La seconda domanda è quella più spinosa per me...

    Grazie mille a chiunque mi darà una mano!

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Passaggio argomento data

    Originariamente inviato da papell
    Avendo un metodo che prevede come parametro una data:
    - Che tipo è meglio usare? Date? GregorianCalendar?
    - In quale formato devo passare l'argomento es. 30/06/2013, considerando il tipo scelto?
    In Java (parlando solo del framework standard, non di altre librerie specifiche per le date) una data la si può trattare generalmente almeno in 3 modi:
    - come long dei millisecondi a partire dalla "epoch" (il solito 1 Gen. del 1970 0:00:00 GMT)
    - come java.util.Date (che rappresenta e contiene solo i millisecondi) o suoi sottotipi (es. java.sql.Date ecc..)
    - come java.util.Calendar (che modella i singoli campi data/ora e offre molto di più a livello di calcoli possibili) o suoi sottotipi (es. il GregorianCalendar)

    cosa scegliere dipende molto da cosa devi farci: stampare una rappresentazione a video, fare calcoli (es. aggiungere N giorni), ottenere informazioni (es. che giorno della settimana è) o fare test/comparazioni.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    La seconda domanda, al contrario, è quella con minor "senso". Il "formato" di una data non esiste. Una data è solo un istante nel tempo, non ha nessun formato.

    I "formati" si usano per "rappresentare" le date in formato testo, ma una rappresentazione non ha nulla a che vedere col tipo di dato.

    25/06/13
    25/06/2013
    25-06-2013
    2013-06-25
    25 giu 2013
    25 Giugno 2013

    Queste sono tutte rappresentazioni dello stesso oggetto, che rappresenta sempre lo stesso identico istante nel tempo. Ho un oggetto (Date) e lo "visualizzo" in molteplici modi diversi, ma l'oggetto non cambia.

    La prima domanda ha già più senso. Considerando che stai parlando di "date", io userei il tipo java.util.Date. Un GregorianCalendar, oltre a rappresentare un istante nel tempo, è anche un oggetto che permette di lavorare con la data (permette di ottenere informazioni puntuali sui singoli campi, permette di fare spostamenti avanti e indietro nel tempo, permette di verificare determinate peculiarità sulla data rappresentata)... tutte cose che che al metodo non credo servano (almeno, non hai detto che deve fare questo metodo, quindi non posso saperlo).

    L'oggetto Date è più "semplice": memorizza l'informazione sull'istante del tempo e permette poche altre cose, che, appunto, non servono se non si devono fare operazioni complesse con le date.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2013
    Messaggi
    2
    Grazie delle delucidazioni ragazzi....
    Rimane però il dubbio sulla seconda domanda, cerco di spiegarmi meglio.
    Ipotizziamo che il metodo abbia come parametro (Date dataggmmaaaa), e che tale parametro sia utilizzato in una qualsiasi maniera per ritornare altri valori: il mio problema è in che forma passare l'argomento al metodo nel momento in cui viene chiamato. Come forma intendo tra apici "", tra ##, tra ' ', ecc.

    Ovvero, dovendo passare 30/06/2013, come faccio?

    tipo nome-metodo ("30/06/2013")?
    oppure
    tipo nome-metodo (#30/06/2013#)?

    oppure devo definire io in che modo passare le mie date nel mio formato ad un metodo?

    Spero di essermi spiegato, abbiate pazienza con un umile profano....

  5. #5
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Uscendo dalla libreria Java standard consiglierei di usare JodaTime, per lo meno ha una API "umana" http://joda-time.sourceforge.net/
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  6. #6
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da papell
    Ovvero, dovendo passare 30/06/2013, come faccio?

    tipo nome-metodo ("30/06/2013")?
    oppure
    tipo nome-metodo (#30/06/2013#)?

    oppure devo definire io in che modo passare le mie date nel mio formato ad un metodo?
    Se il metodo riceve un Date... tu gli devi dare un Date!
    "30/06/2013" è una stringa
    #30/06/2013# è un errore di compilazione (non ha proprio senso)
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  7. #7
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da papell
    Ipotizziamo che il metodo abbia come parametro (Date dataggmmaaaa), e che tale parametro sia utilizzato in una qualsiasi maniera per ritornare altri valori: il mio problema è in che forma passare l'argomento al metodo nel momento in cui viene chiamato. Come forma intendo tra apici "", tra ##, tra ' ', ecc.
    Te lo ha già detto LeleFT: Il "formato" di una data non esiste.

    java.util.Date non ha un "formato" ... è solo un oggetto che contiene il numero di millisecondi.
    Il formato, nel senso cioè di "rappresentazione in stringa", lo puoi gestire tramite java.text.DateFormat/SimpleDateFormat per "parsare" (String->Date) o "formattare" (Date->String).
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.