2015-09-05 19 views
5

Manipolare le date causandomi alcuni problemi.Impostare un oggetto data Java da un oggetto DateTime Notes

Ho creato un codice Java che legge un documento da un DB Notes, quindi popola alcuni campi in un oggetto Java con valori del documento Notes. Il documento Notes contiene un campo DataTime "ExpPayDate" e voglio memorizzarlo nell'oggetto Java, ma ottenere un errore di sintassi nell'editor Java. Il mio codice è simile al seguente:

for (int n = 1 ; n < col.getCount(); n++){ 
    Document pDoc = col.getNthDocument(n); 
    PaymentItem pItem = new PaymentItem(); 
    Date pDate = pDoc.getItemValue("ExpPayDate")[0]; 
    pItem.setExpPayDate(pDate); 
    . 
    . 
    . 
    pDoc.recycle();  
} 

Ho provato vari modi per ottenere il valore da pDoc getItemValue getItemValueDateTime Il codice di cui sopra dà un errore di snytax "il tipo od espressione deve tipo array di fagioli, ma è stato risolto per Vector" se Rimuovo [0] l'errore è "tipo mancata corrispondenza non è possibile convertire Vector in data" Immagino che mi manchi qualcosa di piuttosto semplice ma mi ha bloccato per il momento.

+1

'pDoc.getItemValue (" ExpPayDate "). Get (0)' dovrebbe fare. – MirMasej

risposta

11

Utilizzare DateTime .toJavaDate(). Converte il valore DateTime di Domino in java.util.Date di Java.

DateTime dateTime = (DateTime) pDoc.getItemValueDateTimeArray("ExpPayDate").get(0); 
Date pDate = dateTime.toJavaDate(); 
+0

E da lì è possibile convertire in 'java.time.Instant' tramite' java.util.Date :: toInstant' per evitare l'uso del pasticcio che è 'Date' /' Calendar'. Quelle fastidiose vecchie classi legacy sono ora soppiantate dalle classi java.time. –

+0

Domino 9.0.1 è ancora su Java 1.6 ma non vediamo l'ora di Feature Pack 9 che supporterà Java 1.8. Quindi possiamo usare anche java.time.Instant :) –

+0

Gran parte della funzionalità java.time è back-porting su Java 6 e Java 7 in [* ThreeTen-Backport *] (http://www.threeten.org/ threetenbp /) progetto delle stesse persone. –