2015-03-12 9 views
0

Я работаю с запросом, чтобы донести данные до определенного времени. поэтому я хочу получить временную метку, чтобы удалить последние 3 цифры. Является ли это возможным? как? дать мне подсказку, я буду полностью apreciate чтоJava как удалить последние числа длинного?

+0

Диего ответ только то, что мне нужно, но я буду проверять меняющееся решение формата, а также, спасибо всем! –

ответ

4

Если вы хотите удалить цифры, разделить на 10^п:

long x = 1234567890L; 

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

removeLastNDigits(x, 3) == 1234567L; 

Как отметил dasblinkenlight, если вы хотите 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; 
+0

Это буквально удалит три цифры вместо их обнуления, поэтому метка времени больше не будет представлять время, в течение которого оно использовалось для представления раньше. Я думаю, что OP хочет такую ​​же метку времени, но без миллисекунд. – dasblinkenlight

+0

Смысл, вопрос взял слишком буквально. Я обновлю ответ. –

+0

Спасибо, это был ответ, который я искал –

2

Если вы хотите, чтобы удалить последние 3 цифры, просто разделить на 1000:

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

Если вы хотите изменить последние 3 цифры на 0, деление на 1000, а затем многократным на 1000:

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

просто разделить на 1000.

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

Я думаю, вы должны отформатировать значение временной метки в соответствии с требуемым форматом в базе данных, если это то, что вы ищете, это выборка данных на основе даты в определенном формате.

Вы можете форматировать свою дату согласно базе данных dateformatter, а затем использовать ее в запросе.

Проверить

DateFormat 
SimpleDateFormat 
Смежные вопросы