我試圖從數據庫中獲取時間戳記值,將它們轉換爲日曆並將它們轉換回時間戳記,但它們失去了精度。將java.sql.Timestamp轉換爲java.util.Calendar時不會損失精度
下面的代碼來重現問題
import java.sql.Timestamp;
import java.util.Calendar;
public class Test {
public static void main(String[] args)
{
Timestamp timestamp = new Timestamp(112, 10, 5, 15, 39, 11, 801000000);
System.out.println("BEFORE "+timestamp.toString());
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(timestamp.getTime());
timestamp = new Timestamp(calendar.getTimeInMillis());
System.out.println("AFTER "+timestamp.toString());
}
}
這裏是轉換
BEFORE 2012-10-18 14:30:13.362001
AFTER 2012-10-18 14:30:13.362
它失去了它的精確度的樣品結果。 我該如何保持小數值?
我試過這個在我的IDE,但我沒有得到這樣的結果,每次打印相同 - 'Calendar calendar = Calendar.getInstance(); \t \t Timestamp timestamp = new Timestamp(new Date()。getTime()); \t \t System.out.println(「1 - >」+ timestamp); // \t \t Thread.currentThread()。sleep(1000); \t \t calendar.setTimeInMillis(timestamp.getTime()); \t \t timestamp = new Timestamp(calendar.getTimeInMillis()); \t \t System.out.println(「2 - >」+ timestamp);' –
你能提供更多的上下文嗎?你在哪裏得到這些時間戳,你如何輸出它們? – axtavt
我已經更新了這個例子,我很抱歉之前的錯誤結果是我的錯。 – William