我正在尝试从C#中的Web服务获取时间戳记值,然后将其与Java应用程序匹配。但是,我在毫秒部分得到了一个不同的值。 Web服务上有特定的时间戳格式,因此我需要转换获取的实际时间戳,并将其转换为字符串类型,以便能够获取正确的格式。

这是来自Web服务的时间戳


2017-02-09 P14:01:53.1719701 + 8


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


输出量


时间戳=> 2017-02-09 P14:01:53.0000172 + 8


有没有办法可以从Web服务获取相同的毫秒值?谁能帮助我获得相同的值,以便将其与我的代码匹配。非常感谢!

最佳答案

毫秒的精度只有3位数字,因此使用SSSSSSS总是将毫秒填充为零。

如果您确实希望仅使用毫秒精度的6位数字(纳秒),请改用以下格式:

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

10-04 18:49