我正在使用以下模式在 Java 中解析日期(从服务器获取):"yyyy-MM-dd'T'HH:mm:ss.SSS"
。
传入的字符串可能是这些类型:
2015-01-01T00:00:00.561
2015-01-01T00:00:00.5
我的问题是关于毫秒分数的。我无法确定第二个字符串中的 .5
是 5
还是 500
毫秒。因为当我使用我的模式解析它时,我得到了 500
毫秒。似乎没问题,但需要仔细检查是否有任何通用契约(Contract)在服务器端修剪这些零。我不会询问服务器是否返回了 2015-01-01T00:00:00.500
,但是 .5
我不确定服务器端 5
或 500
毫秒。
更新:
我刚和服务器团队谈过,他们确认 .5
是 .500
。
最佳答案
@dana 说得好:1.5 是 1.500 但是要确保有简单的方法来验证。只需在您的日志文件中查找一些记录集,您就可以轻松查看序列以及这些序列中的毫秒数。 我假设那将是
2015-01-01T00:00:00.46
2015-01-01T00:00:00.5
2015-01-01T00:00:00.561
2015-01-01T00:00:00.57
2015-01-01T00:00:00.678
但不是按照您提供的顺序。 从这个示例中,您可以清楚地看到,这对于毫秒的含义无处不在。
很容易在一个日志文件中看到它。如果你有更多,那么它们可能来自不同的服务器,你无法比较时间。根据定义,不同的服务器具有不同的时间。尤其是毫秒。 即使日志文件来自同一个盒子但不同的应用程序,从字面上比较时间仍然不是一个好主意。一个日志文件可能会被锁定几毫秒,因此您的时间会有所不同。您所能做的就是对来自一个来源的文件进行相关比较(早期/后期)。所有其他情况都可能无效。
关于java - 在 Java 中解析日期的毫秒分数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30087963/