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



我正在尝试从 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")

相关内容

  • 没有找到相关文章

最新更新