将给定字符串解析为时间戳时遇到问题。 错误地解析了毫秒,或者让我知道是否丢失了某些东西。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