java语言中,字符串"12/34/2012"按照"ddMMyyyy"的格式解析成日期是多少,本人测试没有异常抛出。
发布网友
发布时间:2022-04-30 17:26
我来回答
共6个回答
热心网友
时间:2023-10-09 05:31
你这想问的是为什么月份大于12 还能解析成date对象吧
//定义一个string
String a="2012-13-31";
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
/*转成date对象 ,以下解析时候不抛异常 输出 2013-01-31 由2012-13-31 中13-12 =1 ,2012+1获得 这个能看明白?*/
Date date1=sdf.parse(a);
System.out.println(sdf.format(date1));
//设置 时间分析是否不严格 这样不满足日期的 抛出异常。
sdf.setLenient(false);
Date date2=sdf.parse(a);
System.out.println(sdf.format(date2));
/*
========================参考如下====================
setLenientpublic void setLenient(boolean lenient)指定日期/时间分析是否不严格。进行不严格分析时,分析程序可能使用启发式的方法来解释与此对象的格式不精确匹配的输入。进行严格分析时,输入必须匹配此对象的格式。
参数:lenient - 为 true 时,分析过程是不严格的
*/
热心网友
时间:2023-10-09 05:32
这就是个错误的数据。无法解析的。
public static void main(String... args) {
try {
getDate("ddMMyyyy", "12/34/2012");
}
catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static String getDate(String style, Date date) {
return new SimpleDateFormat(style).format(date);
}
public static Date getDate(String style, String param) throws ParseException {
return new SimpleDateFormat(style).parse(param);
}
public static String getDate(String style, String param, String abc) throws ParseException {
return new SimpleDateFormat(style).format(new SimpleDateFormat(style).parse(param));
}追问貌似把34处理成2年+10个月了,结果为12/10/2014
热心网友
时间:2023-10-09 05:32
用SimpleDateFormat来格式化输出
热心网友
时间:2023-10-09 05:33
话说,34是个神马玩意?
热心网友
时间:2023-10-09 05:33
你这是啥啊?咋还有34呢?
热心网友
时间:2023-10-09 05:34
用SimpleDateFormat