XMLGregorianCalender parsen

Status
Nicht offen für weitere Antworten.

pemberton

Mitglied
Hallo,

ich habe ein Problem beim Umwandeln von long in XMLGregorianCalendar.

In meinem Projekt bearbeite ich einen Datumswert in verschiedenen Formaten:

  • 1. als XMLGregorianCalendar-Objekt in einer XML-Datei.
    2. als Long (Datumswert in Millisekunden) zur Ermittlung von Zeitspannen
    3. als Date zum setzen und holen des Datums im JXDatePicker
    4. als String zum Anzeigen des Datums in einer Editbox (Format von XMLGregorianCalendar.toString() )
Für das umwandeln in die verschiedenen Formate habe ich separate Methoden erstellt. Folgende Methode hat ein Problem:

Code:
	public static XMLGregorianCalendar getXMLGregorianCalendarFromLong(long mSec_)
	{
		try
		{
			 // Rückgabewert
		     DatatypeFactory df = DatatypeFactory.newInstance();
			 XMLGregorianCalendar calendarXML = df.newXMLGregorianCalendar();  

			 Date date = new Date(mSec_);

			 System.out.println();
			 System.out.println("mSec_ : "+ new Date(mSec_).toLocaleString());
			 System.out.println("mSec_ : "+ date.toLocaleString());

			 //01.06.2008 13:07:55			 	System.out.println(date.toLocaleString());
			 //0000000000111111111122222222222
			 //0123456789012345678901234567890
			 
			 calendarXML.setYear(   Integer.parseInt( date.toLocaleString().substring(6, 10) ) );
			 calendarXML.setMonth(  Integer.parseInt( date.toLocaleString().substring(3,  5) ) ); 
			 calendarXML.setDay(    Integer.parseInt( date.toLocaleString().substring(0,  2) ) );
			 calendarXML.setHour(   Integer.parseInt( date.toLocaleString().substring(11, 13) ));
			 calendarXML.setMinute( Integer.parseInt( date.toLocaleString().substring(14, 16) ));
			 calendarXML.setSecond( Integer.parseInt( date.toLocaleString().substring(17, 19) ));
			 calendarXML.setTimezone(				  date.getTimezoneOffset()) ;
			 
			 System.out.println("xmlGC : "+ new Date(calendarXML.toGregorianCalendar().getTimeInMillis()).toLocaleString()); 
			 System.out.println("    --> "+calendarXML.toString());
			 return calendarXML;
	    }
	    catch (Exception ex)  
	    {
	    	System.out.println("Fehler beim parsen des Datums."+ex.getMessage());
	    	return null;
	    }
	}

Ausgabe in der Console:
Code:
mSec_ : 01.06.2008 13:07:55
mSec_ : 01.06.2008 13:07:55
xmlGC : 01.06.2008 17:07:55
    --> 2008-06-01T13:07:55-02:00

Hier bekomme ich eine Differenz von + 4 Stunden, wenn ich das XMLGregorianCalendar-Objekt wieder in Mikrosekunden umwandle. Hat jemand eine Idee woher das kommen kann? 4 Stunden sind nicht so einfach durch Sommer/ Winterzeit zu erklären.
Ich weiss zwar, das die Methode "toLocaleString() als 'deprecated' eingestuft ist, aber ich habe bisher keine besser Möglichkeit für die Umwandlung gefunden.

Kann mir jemand bei diesem Problem helfen?

Vielen Dank im Voraus

pemberton
 
G

Gelöschtes Mitglied 5909

Gast
probier mal des ganze über GregorianCalendar zu machen

Code:
long milis = ...;
GrecorianCalendar calendar = new GregorianCalendar();
calendar.setTime(new Date(milis));
calendar.set(Calendar.HOUR, 3);
calendar.get(Calendar.ERA);
calendar.get(Calendar.YEAR);
calendar.get(Calendar.MONTH);
calendar.get(Calendar.WEEK_OF_YEAR);
calendar.get(Calendar.WEEK_OF_MONTH);
calendar.get(Calendar.DATE);
calendar.get(Calendar.DAY_OF_MONTH);
calendar.get(Calendar.DAY_OF_YEAR);
calendar.get(Calendar.DAY_OF_WEEK);
.....

da kannste dann auch die TimeZone setzen usw
 

pemberton

Mitglied
Hallo raiL,

danke für deine Antwort, aber leider verstehe ich nicht ganz wie du das meinst? Ich finde leider keine Methode, wie ich aus dem GregorianCalendar-Objekt ein XMLGregorianCalendar-Objekt machen kann.

calendarXML = calendar.getXMLGregorianCalendar();

so etwas in der art...

-
pemberton
 
G

Gelöschtes Mitglied 5909

Gast
du machst das hier

Code:
          calendarXML.setYear(   Integer.parseInt( date.toLocaleString().substring(6, 10) ) );
          calendarXML.setMonth(  Integer.parseInt( date.toLocaleString().substring(3,  5) ) );
          calendarXML.setDay(    Integer.parseInt( date.toLocaleString().substring(0,  2) ) );
          calendarXML.setHour(   Integer.parseInt( date.toLocaleString().substring(11, 13) ));
          calendarXML.setMinute( Integer.parseInt( date.toLocaleString().substring(14, 16) ));
          calendarXML.setSecond( Integer.parseInt( date.toLocaleString().substring(17, 19) ));


verwende statt dem substring kram des was ich oben geschrieben hab, die halbe Date Klasse ist deprecated
 

pemberton

Mitglied
Hallo raiL,

vielen Dank, jetzt funktioniert es!

Gruß pemberton


Code:
    DatatypeFactory df = DatatypeFactory.newInstance();
    XMLGregorianCalendar gcXML = df.newXMLGregorianCalendar();  
			
    GregorianCalendar gc = new GregorianCalendar(); 
    gc.setTime(new Date(System.currentTimeMillis()));

    gcXML.setYear(	    gc.get(Calendar.YEAR)); 
    gcXML.setMonth(	    gc.get(Calendar.MONTH)+1 ); 
    gcXML.setDay(	    gc.get(Calendar.DAY_OF_MONTH)); 
    gcXML.setHour(	    gc.get(Calendar.HOUR_OF_DAY)); 
    gcXML.setMinute(	    gc.get(Calendar.MINUTE)); 
    gcXML.setSecond(	    gc.get(Calendar.SECOND)); 
    gcXML.setTimezone(   gc.get(Calendar.DST_OFFSET) /60/1000           // Sommerzeit
		 + gc.get(Calendar.ZONE_OFFSET) /60/1000 ) ;     // Zeitzone
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
MiMa Buch Metadaten aus XML Datei parsen XML & JSON 48
S XML Document Parsen und Ausgeben mit Suchfunktion XML & JSON 21
M parsen von realen HTML-WEB-Seiten XML & JSON 1
MiMa parsen mit regex -> ein schnelles Ende XML & JSON 10
K Beim Parsen einer XML-Datei Connection timed out XML & JSON 4
F Parsen von Daten aus einer Homepage XML & JSON 6
G Langsam beim SAX-Parsen - woran liegts? XML & JSON 2
C Parsen des XML-Streams mit SAX XML & JSON 3
M XML Datei Parsen XML & JSON 4
D SAX parsen - Wie? XML & JSON 11
S XML Parsen und Werte zwischenspeichern XML & JSON 2
K Kurze XML Datei Parsen XML & JSON 5
whitenexx Problem beim parsen von Facebook XML XML & JSON 3
J Comments in XML parsen XML & JSON 3
H Nicht wohlgeformtes XML mit SAX parsen XML & JSON 2
M XML Parsen JDOM NullPointerEcxeption XML & JSON 7
Z XML parsen - Element mit Werten XML & JSON 2
ruutaiokwu xml nur bis auf eine bestimmte ebene parsen mit javax.xml... XML & JSON 5
L [SAX] Geschachtelte XML Datei parsen XML & JSON 3
R XML in UTF-8 mit SAX parsen XML & JSON 9
O Parsen einer XML mit JDOM ohne Doctype Declaration XML & JSON 2
F Probleme beim html parsen mit tagsoup XML & JSON 4
M Probleme beim Parsen eines gefilterten XML-Dokuments XML & JSON 6
Semox Kann JUnit XML Parsen? XML & JSON 2
L Reihenfolge beim xml Datei parsen einhalten? XML & JSON 8
L xml Datei parsen ohne End-Tag XML & JSON 6
T RSS-Feed parsen und in Datenbank speichern XML & JSON 6
B XML parsen XML & JSON 3
H XML parsen und unbekannten Namespace zurückgeben XML & JSON 5
L invalide xml document parsen?! XML & JSON 2
S DOM Parsen Problem mit HTML Sonderzeichen XML & JSON 4
ABstraCT XML properties am einfachsten parsen. XML & JSON 2
U xmi parsen über emf XML & JSON 10
S XML-Schema einlesen um parsen zu erleichtern? XML & JSON 2
T Problem beim Parsen von Attribut xmlns="urn:com:test&qu XML & JSON 6
M Datei parsen XML & JSON 5
S HTML mit dom4j parsen? XML & JSON 2
X XML File auslesen/parsen u. in ne Hashmap speichern XML & JSON 2
Saxony unbekannte XML Datei parsen und ausgeben XML & JSON 10
P "Formatierungs-Tags" parsen XML & JSON 3
M Attribute parsen XML & JSON 6
R Parsen einer XML ohne Validierung XML & JSON 2
D XML Datei innerhalb einer JAR Datei parsen XML & JSON 2
M Xerces -Parsen mit einer externen Schemadatei geht nicht XML & JSON 2
L bz2-Datei parsen XML & JSON 9
K XML parsen Whitespaces XML & JSON 2
I XML-String mit SAX parsen ? XML & JSON 2
M Object in XML parsen XML & JSON 2
byte Probleme beim Parsen von XHTML-Datei XML & JSON 4
P HTML Seite Parsen, und bestimmten Text extrahieren XML & JSON 3
X xml und xsl parsen mit xerces XML & JSON 8
W Xml-String parsen XML & JSON 2
W root element parsen,Hilfe! XML & JSON 5
F Gibt es Möglichkeiten Deutsche Sätze zu parsen ? XML & JSON 2
A Auf der Suche nach Bibliotheken oder wie parsen? XML & JSON 15
S XML Datei mit Schemafehler parsen XML & JSON 14
R StreamSource parsen ! XML & JSON 8
R RSS parsen XML & JSON 2
K XML Datei parsen XML & JSON 4

Ähnliche Java Themen

Neue Themen


Oben