C#中的时间戳值与java不同

时间:2017-02-09 06:45:28

标签: java c# web-services simpledateformat

我正在尝试从 C#中的网络服务获取时间戳值,然后将其与 Java 应用程序匹配。但是,我在毫秒部分得到了不同的值。 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);

输出

  

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

有没有办法可以从网络服务获得相同的毫秒值?任何人都可以帮助我如何获得相同的值,以便我能够将它与我的代码相匹配。非常感谢你!

1 个答案:

答案 0 :(得分:1)

毫秒只有3位数的精度,因此使用SSSSSSS将始终用前面的零填充毫秒......

如果您真的想要使用毫秒精度的6位数(纳秒),请改用此格式:

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