在我使用的日志中:(java.sql.Timestamp)
new Timestamp(System.currentTimeMillis())它的行为很奇怪(国际水文学组织):
我预计: 2017-03-28 17:08:55.96的结尾是0
如预期
问题:
这是新时间戳()的正常行为吗?
为什么终止零点会被丢弃?
发布于 2017-04-05 09:52:49
所以,是的,这是正确的行为。因为纳秒部分的toString()方法的实现是:
if (nanos == 0) {
nanosString = "0";
} else {
nanosString = Integer.toString(nanos);
...
}在else部分:
// Truncate trailing zeros
char[] nanosChar = new char[nanosString.length()];
nanosString.getChars(0, nanosString.length(), nanosChar, 0);
int truncIndex = 8;
while (nanosChar[truncIndex] == '0') {
truncIndex--;
}
nanosString = new String(nanosChar, 0, truncIndex + 1);查看java.sql.Timestamp.toString()方法的源代码
https://stackoverflow.com/questions/43227495
复制相似问题