在下面的代码中,日期在解析时发生了变化: 特别是分钟数增加了 5 分钟。 为什么会这样?
String inputDate="2016-12-01T16:30:59.264448";
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSSSSS");
SimpleDateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
java.util.Date parsedTimeStamp=null;
if(!inputDate.contains(".")){
try {
parsedTimeStamp = dateFormat1.parse(inputDate.replace("T", " "));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else{
try {
parsedTimeStamp = dateFormat.parse(inputDate.replace("T", " "));
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
System.out.println("Date-->"+parsedTimeStamp);
最佳答案
2 件事,如果您查看 SimpleDateFormat 的文档(Java 8 或 7),尤其是关于“日期和时间模式”的部分,你注意到了
H Hour in day (0-23)
h Hour in am/pm (1-12)
所以你应该考虑使用下面的
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSSSSS");
SimpleDateFormat dateFormat1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
并且您提供的那些毫秒将转换为秒/分钟,从而转换为结果。
关于java - 解析时日期正在更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41803905/