2017-02-09 1 views
0

웹 서비스에서 타임 스탬프 값을 C#으로 가져와 Java 응용 프로그램과 일치 시키려고합니다. 그러나 밀리 초 부분에서 다른 값을 얻고 있습니다. 웹 서비스에서 타임 스탬프의 특정 형식이 있으므로 실제 타임 스탬프를 변환하고 적절한 형식을 얻을 수 있도록 문자열 형식으로 변환해야합니다. 01 : 53.1719701 + 8C#의 타임 스탬프 값이 자바와 다릅니다

자바에서 내 샘플 코드

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

출력

2017년 2월 9일 P14 웹 서비스에서 타임 스탬프입니다

타임 스탬프 => 201 7-02-09 P14 : 01 : 53.0000172 + 8

웹 서비스에서 동일한 밀리 초 값을 얻을 수있는 방법이 있습니까? 아무도 내가 어떻게 내 코드에 일치시킬 수있을 것입니다 동일한 값을 얻을 수에 나를 도울 수 있습니다. 정말 고맙습니다!

+0

사용중인 포맷터를 추가하면 도움이 될 것입니다. 서비스의 밀리 초가 대신 나노초로 처리됩니다. –

+0

안녕하세요. 코드를 편집하고 포맷터를 추가했습니다. – jeramay10

+0

웹 서비스에서 아무 것도 업데이트하지 않고 나노 초 값을 얻을 수 있습니까? – jeramay10

답변

1

밀리 초는 너무 앞에 제로의와 밀리 초 SSSSSSS는 항상 패드를 ... 사용, 정밀의 3 자리 숫자를 가지고

당신이 정말로 6 자리 만 밀리 초 정밀도를 사용하여 (나노초), 대신이 형식을 사용하려면

:

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

당신은'SSS'가 아니라'SSSS'를 의미하셨습니까? – Andreas

+0

감사합니다, 바로 대답을 제안한 직후에 당신의 의견을 보았습니다.) –

+0

@ FrederikHeremans은 여전히 ​​정확한 값을 얻지 못했습니다 ** webservice : ** _2017-02-09 P15 : 16 : 06.8347887 + 8_, ** formattedtimestamp ** * * : ** _2017-02-09 P15 : 16 : 06.835000 + 8_ – jeramay10