我正在尝试从 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
有没有办法可以从网络服务获得相同的毫秒值?任何人都可以帮助我如何获得相同的值,以便我能够将它与我的代码相匹配。非常感谢你!
答案 0 :(得分:1)
毫秒只有3位数的精度,因此使用SSSSSSS
将始终用前面的零填充毫秒......
如果您真的想要使用毫秒精度的6位数(纳秒),请改用此格式:
new SimpleDateFormat("yyyy-MM-dd aHH:mm:ss.SSS'000'X")