Java 如何去掉最后一个长号?

Java how to remove last numbers of a long?

我正在使用一个查询来根据给定时间获取数据。所以我想获取时间戳并删除它的最后 3 位数字。可能吗?如何?给我一个提示,我会非常感激

如果要删除数字,除以 10^n:

long x = 1234567890L;

long removeLastNDigits(long x, long n) {
  return x / Math.pow(10, n);
}

removeLastNDigits(x, 3) == 1234567L;

正如 dasblinkenlight 所指出的,如果你想将最后 n 位数字置为 0,那么在删除它们之后你需要将它们添加回 0:

long x = 1234567890L;

long zeroLastNDigits(long x, long n) {
  long tenToTheN = Math.pow(10, n);
  return (x / tenToTheN) * tenToTheN;
}

zeroLastNDigits(x, 3) == 1234567000L;

如果要删除最后 3 位数字,只需除以 1000 :

long l = ...;
l = l / 1000;

如果要将最后 3 位数字更改为 0,请除以 1000,然后再乘以 1000:

long l = ...;
l = (l / 1000) * 1000;

除以 1000。

long x = 123456789L;
long withoutLast3 = x / 1000; // equals to 123456L

我认为您应该根据数据库中所需的格式设置时间戳值的格式,如果您要查找的是基于特定格式的日期获取数据的话。

您可以根据日期格式化程序格式化日期,然后在查询中使用它。

检查

DateFormat
SimpleDateFormat