我正在尝试将日期从2009年5月15日下午19:24:11 MDT转换为20090515192411。 但是当我尝试下面的代码时,readformat本身将输入视为5月16日而不是5月15日
这是我的代码。
String dateInString = "May 15, 2009 19:24:11 PM MDT";
DateFormat readFormat = new SimpleDateFormat( "MMM dd, yyyy hh:mm:ss a z");
DateFormat writeFormat = new SimpleDateFormat("yyyyMMddHHmmss");
Date date = null;
try {
date = readFormat.parse(dateInString);
}
catch(ParseException e) {
e.printStackTrace();
}
System.out.println(date); // Prints May 16, 2009 07:24:11 AM MDT
String formattedDate = "";
if( date != null ) {
formattedDate = writeFormat.format(date);
}
System.out.println(formattedDate); // Prints 20090516072411
感谢您的帮助。
答案 0 :(得分:4)
String dateInString = "May 15, 2009 19:24:11 PM MDT";
无效,时间可以是24小时格式,也可以是AM / PM
答案 1 :(得分:3)
您需要HH
而非hh
才能以24小时格式阅读时间。 Java的“宽容日期”正在这里 - 晚上19:24 pm将在晚上11点24分之后的8小时进行解析。