Sef*_*an2 2 java parsing date date-format simpledateformat
我正在使用
java.util.Date date;
SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy");
try {
date = sdf.parse(inputString);
} catch (ParseException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
其中inputString是dd/MM/yyyy格式的字符串.
如果inputString是,例如,2013年2月40日,我将获得一个错误,而不是解析方法返回日期2013年3月12日(2013年3月12日).我错了什么?
设置宽松位:
public void setLenient(boolean lenient)
Run Code Online (Sandbox Code Playgroud)
指定日期/时间解析是否宽松.通过宽松的解析,解析器可以使用启发式来解释与该对象的格式不完全匹配的输入.通过严格的解析,输入必须与此对象的格式匹配.
以下代码:
import java.text.ParseException;
import java.text.SimpleDateFormat;
public class Tester {
public static void main(String[] argv) {
java.util.Date date;
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
// Lenient
try {
date = sdf.parse("40/02/2013");
System.out.println("Lenient date is : "+date);
} catch (ParseException e) {
e.printStackTrace();
}
// Rigorous
sdf.setLenient(false);
try {
date = sdf.parse("40/02/2013");
System.out.println("Rigorous date (won't be printed!): "+date);
} catch (ParseException e) {
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
得到:
Lenient date is : Tue Mar 12 00:00:00 IST 2013
java.text.ParseException: Unparseable date: "40/02/2013"
at java.text.DateFormat.parse(DateFormat.java:357)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2531 次 |
| 最近记录: |