import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateTestError{
public static void main(String args[]){
System.out.println("old date:");
DateFormat df = new SimpleDateFormat(
"yyyyMMddHHmmss");
try {
Date date = null;
date = df.parse("20121112123456");
System.out.println(date);
date = df.parse("20121112133456");
System.out.println(date);
date = df.parse("20121112003456");
System.out.println(date);
} catch (ParseException e) {
e.printStackTrace();
}
System.out.println("new date:");
DateFormat df2 = new SimpleDateFormat(
"yyyyMMddhhmmss");
try {
Date date = null;
date = df2.parse("20121112123456");
System.out.println(date);
date = df2.parse("20121112133456");
System.out.println(date);
date = df2.parse("20121112003456");
System.out.println(date);
} catch (ParseException e) {
e.printStackTrace();
}
}
}
结果输出:
old date: Mon Nov 12 12:34:56 CST 2012 Mon Nov 12 13:34:56 CST 2012 Mon Nov 12 00:34:56 CST 2012 new date: Mon Nov 12 00:34:56 CST 2012 Mon Nov 12 13:34:56 CST 2012 Mon Nov 12 00:34:56 CST 2012
24小时制的时间格式,写的时候,本人犯了一个很二的错误:
上面写的时间格式,特别小心"yyyyMMddHHmmss",这里面的大H,HH不能用hh,会出错误。而且这个错误非常不容易发现,只有当时间是12点多时,会变成0点,其余都是一样的,因此非常容易出现错误。
总结
Java时间24小时和12小时制:
- 24小时制: “yyyy-MM-dd HH:mm:ss”
- 12小时制: “"yyyy-MM-dd hh:mm:ss"”
但要注意,即使使用12小时制,如果传入的是13-23点,仍然是正确的!