2017-02-09 3 views
0

Ich versuche, einen Zeitstempel Wert von einem Webservice in C# zu bekommen und dann zu einer Java Anwendung. Allerdings bekomme ich im Millisekunden-Bereich einen anderen Wert. Es gibt ein spezielles Format des Zeitstempels auf dem Webservice, daher muss ich den tatsächlichen Zeitstempel, den ich erhalte, konvertieren und in einen Zeichenkettentyp konvertieren, um das richtige Format zu erhalten.Zeitstempel Wert in C# unterscheidet sich von Java

Dies ist der Zeitstempel von einem Webdienst

2017-02-09 P14: 01: 53,1719701 + 8

Mein Beispielcode in Java

Date webServiceTimeStamp=service.getApplication().getTimestamp().getTime(); 

    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd aHH:mm:ss.SSSSSSSX"); 
    String formattedTimeStamp = formatter.format(webServiceTimeStamp); 
    if(formattedTimeStamp.contains("AM")) 
    { 
     formattedTimeStamp = formattedTimeStamp.replace("AM", "A"); 
    }else{ 

      formattedTimeStamp = formattedTimeStamp.replace("PM", "P"); 
    } 
    formattedTimeStamp = formattedTimeStamp.replace("+0", "+"); 


    System.out.println("timestamp => " + formattedTimeStamp); 

Ausgabe

timestamp => 201 7-02-09 P14: 01: 53.0000172 + 8

Gibt es eine Möglichkeit, den gleichen Millisekunden-Wert vom Web-Service zu bekommen? Kann mir jemand helfen, wie ich den gleichen Wert bekomme, damit ich ihn mit meinem Code vergleichen kann. Ich danke dir sehr!

+0

Es würde helfen, wenn Sie die Formatierungs hinzufügen Sie auch verwenden ... Scheint, wie der miliseconds aus dem Dienst als Nanosekunden statt behandelt werden. –

+0

Hallo, ich habe gerade den Code bearbeitet und den Formatierer hinzugefügt – jeramay10

+0

kann ich den Nano-Sekunden-Wert erhalten, ohne irgendetwas auf dem Web-Service zu aktualisieren? – jeramay10

Antwort

1

Millisekunde hat nur 3 Ziffern der Präzision, so mit SSSSSSS wird immer Pad die miliseconds mit Null vor ...

Wenn Sie wirklich wollen 6 Ziffern (ns) nur Millisekunden Genauigkeit unter Verwendung dieses Format verwenden, statt:

new SimpleDateFormat("yyyy-MM-dd aHH:mm:ss.SSS'000'X") 
+1

Sie meinte 'SSS', nicht' SSSS', oder? – Andreas

+0

Danke, habe gerade Ihren Kommentar gesehen, nachdem ich die Antwort vorgeschlagen habe;) –

+0

@FrederikHeremans immer noch nicht den genauen Wert erhalten, ** Webservice: ** _2017-02-09 P15: 16: 06.8347887 + 8_, ** formatierter Zeitstempel ** * *: ** _2017-02-09 P15: 16: 06.835000 + 8_ – jeramay10

Verwandte Themen