java - 在 Java 中解析日期的毫秒分数

标签 java parsing date milliseconds

我正在使用以下模式在 Java 中解析日期(从服务器获取):"yyyy-MM-dd'T'HH:mm:ss.SSS"

传入的字符串可能是这些类型:

2015-01-01T00:00:00.561
2015-01-01T00:00:00.5

我的问题是关于毫秒分数的。我无法确定第二个字符串中的 .55 还是 500 毫秒。因为当我使用我的模式解析它时,我得到了 500 毫秒。似乎没问题,但需要仔细检查是否有任何通用契约(Contract)在服务器端修剪这些零。我不会询问服务器是否返回了 2015-01-01T00:00:00.500,但是 .5 我不确定服务器端 5500 毫秒。

更新:

我刚和服务器团队谈过,他们确认 .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/

相关文章:

java - 托管在 Internet 上运行的 Java Web 应用程序

javascript 不能使用 forloop 对吗?

java.sql.SQLException : Method org. postgresql.jdbc3.Jdbc3PreparedStatement.setQueryTimeout(int) 尚未实现

javascript - J2EE Web 应用程序性能调优

java - Collections.Sort 后续排序的性能?

csv - 是否有任何插件可以解析Grails 3.1.1发送到后端的csv文件?

java - 解析维基媒体标记——基于 EBNF 的解析器不适合吗?

Java 十进制格式 - 与给定的一样多的精度

php - 将MySQL日期时间转换为不同时区

python - 如何使用特定格式在 Django 模板上获取本地化日期?