將給定字符串解析爲時間戳時遇到問題。 錯誤地解析了毫秒,或者讓我知道是否丟失了某些東西。Java:從字符串轉換爲時間戳時錯誤地解析了毫秒
我從請求字符串:
String selectedTimeStamp = request.getParameter("selectTime");
System.out.println("selectedTimeStamp: "+selectedTimeStamp);
,然後我用SimpleDateFormat的解析和格式化字符串:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS", Locale.US);
Date parsedDate = sdf.parse(selectedTimeStamp);
Timestamp timestamp = new java.sql.Timestamp(parsedDate.getTime());
System.out.println("createdTime: " +timestamp);
我得到的輸出是:
selectedTimeStamp: 2016-07-04 21:09:47.66
createdTime: 2016-07-04 21:09:47.066
不知道爲什麼毫秒從66轉換爲066?它應該是660 任何想法?
因爲'SSS'意思是毫秒,所以'66'被解析爲66毫秒。 – Andreas
新的Java 8時間API將'SSS'解釋爲小數秒,所以只要模式指定了'SS',而不是'SSS',它就可以更好地處理'.66'輸入。 – Andreas