我遇到一个问题,其中SimpleDateFormat和Date和Timestamp给出了几分钟的时间(一个字符串约为34分钟,另一个字符串约为1:27)。我已经能够在SimpleDateFormat等上找到几个帖子给出不正确的时间,但是我发现的那些帖子都与yyyy v.YYYYY,或时区,或Sql时间戳,或导致日期被相对整数关闭的其他问题有关。例如:
Java SimpleDateFormat: an hour wrong
SimpleDateFormat returns wrong date value during parse
Java SimpleDateFormat returning wrong value in Date object
SimpleDateFormat parse returns wrong value
JDBC ResultSet getDate losing precision
SimpleDateFormat producing wrong date time when parsing "YYYY-MM-dd HH:mm"
为什么下面的代码显示输出,如何获得表示正确解析时间的字符串?
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Date;
public class TimeExample {
public static void main(String[] args) throws Exception {
toTimeStamp("2016-01-06 10:03:55.2000000");
toTimeStamp("2016-01-06 09:48:05.5230000");
}
public static void toTimeStamp(String str) throws Exception {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd' 'HH:mm:ss.SSSSSSS");
Date date = format.parse(str);
Timestamp ts = new Timestamp(date.getTime());
System.out.println("----------------------------");
System.out.println(str);
System.out.println(ts);
}
}
输出:
----------------------------
2016-01-06 10:03:55.2000000
2016-01-06 10:37:15.0
----------------------------
2016-01-06 09:48:05.5230000
2016-01-06 11:15:15.0