Domanda

Voglio convincere l'architettura manager per includere il Joda Tempo jar nel nostro prodotto.

Conoscete qualche svantaggi nell'utilizzo?

Penso che Joda-Time deve essere costantemente aggiornato a causa dei file che include.E questo è uno svantaggio.Forse ho sbagliato.

Potrebbe fornire un po ' di chiarezza sull'argomento?

È stato utile?

Soluzione

Ho avuto esperienze positive con la quasi totalità Joda Time. Il mio unico problema era quando si cerca di costruire il mio fuso orario (per motivi legittimi, vi assicuro :) Ho avuto alcune eccezioni molto strano, e la documentazione non era molto buono per quel particolare caso d'uso.

Tuttavia, per la maggior parte è stata una gioia da usare -. Immutabilità rende il codice molto più facile ragionare su, e filo-sicurezza per i formattatori è estremamente utile

Sì, ci sono file per tenere aggiornati - ma almeno si possono tenerli aggiornati. Non è che essi contengono cose che erano inutili con roba built-in di Java, è solo che con il meccanismo di Java proprio non poteva mantenere le informazioni come fusi orari aggiornati senza aggiustamenti significativi!

In sostanza, uno per l'utilizzo di Joda Time. Il Java data / ora API è uno dei peggiori bit della piattaforma Java, IMO.

Altri suggerimenti

A mio parere, l'inconveniente più importante in Joda-Time è una questione di precisione: molti database timestamp negozi con microsecondo (o anche nanosecondo ) di precisione. Joda-passare del tempo solo per millisecondi . Questo non è accettabile per me: tutte le classi "modello dati" che uso necessità di riflettere la completa precisione dei dati nel mio database. Approssimazioni o troncamenti dei miei dati da una libreria proprio non è tagliato.

Ecco il ragionamento che sta dietro la scelta di precisione millisecondo, tratto dal JSR 310 mailing list:

  

"Joda Time ha scelto di utilizzare millisecondi come ha fatto conversioni per data e il calendario più facile." - S. Colebourne

Più facile per chi? L'autore della biblioteca, si potrebbe supporre ... decisione di progettazione non corretta, a mio parere, quando quasi tutte le volte database dell'archivio di precisione microsecondo / nanosecondo. Il disprezzo per i valori di database è preoccupante.

Il problema più grande che abbiamo avuto quando si utilizza Joda volta è stato con l'integrazione con la primavera e l'Arazzo, in quanto entrambi volevano utilizzare il built-in di data e ora. Eravamo costantemente scrivendo involucri in getter / setter per la data e l'ora: o avremmo conservarlo come Joda tempo e un set di getter / setter passati attraverso e l'altro si sarebbe convertito al volo, e alcune classi memorizzati internamente come Java data / ora, e la Joda getter / setter dovuto cambiare al volo.

In sostanza, si trattava di un mal di testa, perché le classi sono nominati in modo simile, e se non è possibile ottenere l'intera architettura (tra cui altre biblioteche si sta integrando) per passare alla Joda Tempo, che si sta per scrivere più codice wrapper di te probabilità di risparmiare utilizzando le librerie Joda.

Parleys padroni di casa una presentazione a cura di Stefano Colebourne circa JSR-310, Il signorColebourne l'autore di Joda Tempo e JSR-310.Egli inizia spiegando le debolezze della norma data/ora, supporto Java e perché ci si vuole utilizzare un'alternativa.Può essere utile per mostrare questa presentazione per l'architettura del tuo gestore.Io non riesco a deep-link

Il motivo Joda-aggiornamenti in Tempo il suo fuso orario file abbastanza spesso a causa del fuso orario modifiche dei dati per tutto il tempo, spesso con breve preavviso (oggi su slashdot: secondo intercalare aggiunto il 2008-12-31 e non sempre scientificamente motivati (ad es.Ricordo alcune isole del pacifico stato cambiato il fuso orario per essere il primo paese ad entrare nell'anno 2000).

In passato, ho incontrato le aziende che non volevano incorporare terze parti software open source, o almeno richiedevano l'avvocato società per certificare che la licenza non aveva intenzione di esporli a qualsiasi tipo di responsabilità o avere un effetto virale sul loro prodotto.

Come per le librerie di terze parti, probabilmente si dovrebbe metterla in controllo del codice sorgente in modo da poter trovare la versione che hai spedito con particolari versioni del codice in caso qualcosa vada storto.

La scelta di millisecondi per il tempo continuo sottostante è buono per calendari dell'antichità e calendari speciali attuazione. A differenza di molti contatori, il contatore millisecondi a 64 bit ha una copertura buona gamma per i calendari dell'antichità, con proprietà rollover superiori a +/- 260 milioni anni.

Non gestisce secondo salto. Questa è una buona cosa. Una transizione graduale è proposto dalla gente dell'orologio atomico per consentire sistemi che non distribuiscono secondo salto per regolare in modo incrementale i loro orologi più di 100 secondi per accogliere la seconda correzione salto.

Manutenzione delle tabelle di fuso orario sarà anche essere un problema.

Il continuum sottostante permette anche un vecchio calendario francese e l'orologio che ha diviso una giornata in 10 intervalli denominati tempo metrico invece di 24 ore. Il calendario classico cinese divide al giorno in 100 incrementi, ciascuno poco più di 14 minuti di lunghezza. Tutti questi calendari possono essere implementati e coordinata sul sottostante tempo millisecondo continuo.

Il problema principale con esso è profit lock-in, almeno fino a quando non entra a far parte dello standard.

Per la maggior parte userei anela per memorizzare tutte le informazioni delle aziende in un database. Questo mi dà la flessibilità per regolare la precisione, come vedo in forma. Nella maggior parte dei casi ho solo convertirli in java.util.Date.

Fuso orario avrei piacere essere un problema di livello di presentazione di un problema di dati. Questo semplifica il database e aumenta la portabilità dal database possono rappresentare temporali in modi diversi.

La classe calendario standard mi fornisce alcune funzioni di manipolazione data che ho convertire in millisecondo in quanto i dati epoca.

Per quanto riguarda la precisione nanosecondo vorrei memorizzare che come un offset da 0 come una lunga colonna separata.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top