java 中的简单日期格式,解析异常
Simple date format in java, Parse Exception
这是我的日期字符串:"07SEP2014 00:00"
这是将字符串转换为日期的代码:
new SimpleDateFormat("ddMMMyyyy HH:mm").parse(dateString);
我遇到了解析异常。我做错了什么?
您需要根据模式自定义日期格式。有关自定义它的更多详细信息here。
编辑:
大小写在这里很重要。 SEP 应该像 Sep
SimpleDateFormat formatter=new SimpleDateFormat("ddMMMyyyy HH:mm");
Date today = new Date();
today.setMonth(8);
String result = formatter.format(today);
System.out.println(result);
输出:10Sep2015 15:08
编辑 2:
您的示例也有效。
SimpleDateFormat formatter=new SimpleDateFormat("ddMMMyyyy HH:mm");
Date result = formatter.parse("07Sep2014 00:00");
System.out.println(result.toString());
输出:Sun Sep 07 00:00:00 IST 2014
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateParse {
public static void main(String[] args) {
String date = "07SEP2014 00:00";
try {
Date dateParse = new SimpleDateFormat("ddMMMyyyy HH:mm").parse(date);
System.out.println(dateParse);
} catch (ParseException e) {
e.printStackTrace();
}
}
}
输出:
Sun Sep 07 00:00:00 IST 2014
只要您的系统具有 SEP = September 的区域设置,您的代码就可以工作。
您可以设置区域设置以确保这一点:
Date result = new SimpleDateFormat("ddMMMyyyy HH:mm",Locale.ENGLISH).parse(dateString);
这是我的日期字符串:"07SEP2014 00:00"
这是将字符串转换为日期的代码:
new SimpleDateFormat("ddMMMyyyy HH:mm").parse(dateString);
我遇到了解析异常。我做错了什么?
您需要根据模式自定义日期格式。有关自定义它的更多详细信息here。
编辑: 大小写在这里很重要。 SEP 应该像 Sep
SimpleDateFormat formatter=new SimpleDateFormat("ddMMMyyyy HH:mm");
Date today = new Date();
today.setMonth(8);
String result = formatter.format(today);
System.out.println(result);
输出:10Sep2015 15:08
编辑 2: 您的示例也有效。
SimpleDateFormat formatter=new SimpleDateFormat("ddMMMyyyy HH:mm");
Date result = formatter.parse("07Sep2014 00:00");
System.out.println(result.toString());
输出:Sun Sep 07 00:00:00 IST 2014
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class DateParse {
public static void main(String[] args) {
String date = "07SEP2014 00:00";
try {
Date dateParse = new SimpleDateFormat("ddMMMyyyy HH:mm").parse(date);
System.out.println(dateParse);
} catch (ParseException e) {
e.printStackTrace();
}
}
}
输出:
Sun Sep 07 00:00:00 IST 2014
只要您的系统具有 SEP = September 的区域设置,您的代码就可以工作。 您可以设置区域设置以确保这一点:
Date result = new SimpleDateFormat("ddMMMyyyy HH:mm",Locale.ENGLISH).parse(dateString);