我正在将日期从字符串类型日期转换为日期类型日期,使用 SimpleDateFormat 但 我得到的结果日期正在改变。任何人都可以告诉我为什么它会改变 另外我应该使用什么来从字符串中获取正确的日期类型日期,而不是我到达这里时更改的日期。
Date d = null;
String startTime="2012-03-17 16:00:00 PM";
DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss a");
try {
d= sdf.parse(startTime);
} catch (ParseException e) {}
System.out.println("DD="+d) //printing Sun Mar 18 04:00:00 IST 2012 ? why this
//Date enterd was 17 Mar 2012
最佳答案
如果将 24 小时时钟和 AM/PM 标记结合起来,就会产生歧义。在您的情况下,您应该使用“HH”(大写 H)来解析 0-23 范围内的小时字段并忽略 AM/PM 后缀,或者使用带有适当 AM/PM 后缀的 12 小时时钟(在您的情况下为“04” :00:00 PM”)。
关于java - 从字符串转换为日期后如何获得正确的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14443625/