2015-09-05 4 views
5

Manipulieren von Daten, die mir einige Probleme verursachen.Legen Sie ein Java-Datum-Objekt aus einem Notes DateTime-Objekt

Ich habe einen Java-Code erstellt, der ein Dokument aus einer Notes DB liest und dann einige Felder in einem Java-Objekt mit Werten aus dem Notes Dokument füllt. Das Notes-Dokument enthält ein DataTime-Feld "ExpPayDate", und ich möchte es im Java-Objekt speichern, bekomme aber einen Syntaxfehler im Java-Editor. Mein Code sieht wie folgt aus:

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();  
} 

ich verschiedene Weise versucht haben, den Wert von pDoc getItemValue getItemValueDateTime Der obige Code gibt einen snytax Fehler zu erhalten „die Art od Ausdruck muss Bean-Array-Typ, sondern auf Vector aufgelöst“, wenn Ich entferne die [0] der Fehler ist "Typenkonflikt kann Vektor nicht in Datum umwandeln" Ich vermute, dass ich etwas ziemlich einfaches vermisse, aber es hat mich im Moment ratlos.

+1

'pDoc.getItemValue (" ExpPayDate "). Get (0)' sollte tun. – MirMasej

Antwort

11

Verwenden Sie DateTime .toJavaDate(). Es konvertiert den DateTime-Wert von Domino in Java java.util.Date.

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

Und von dort können Sie in 'java.time.Instant' über' java.util.Date :: toInstant' konvertieren, um das schreckliche Chaos, das 'Date' /' Calendar' ist, zu vermeiden. Diese lästigen alten Legacy-Klassen werden jetzt durch die java.time-Klassen ersetzt. –

+0

Domino 9.0.1 ist immer noch auf Java 1.6, aber wir freuen uns auf Feature Pack 9, das Java 1.8 unterstützt. Dann können wir auch java.time.Instant verwenden :) –

+0

Ein großer Teil der java.time-Funktionalität wird zurück zu Java 6 und Java 7 im [* ThreeTen-Backport *] (http://www.threeten.org/) portiert. threetenbp /) Projekt von den gleichen Leuten. –