public static void main(String[] args) throws ParseException { String s = "2019-09-01"; System.out.println("转换前日期:"+s); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd"); System.out.println("转换后日期:"+sdf.parse(s)); DateFormat df = new SimpleDateFormat("yyyyMMdd"); System.out.println("再次转回:"+df.format(sdf.parse(s))); }
结果:
转换前日期:2019-09-01 转换后日期:Sun Dec 09 00:00:00 CST 2018 再次转回:20181209
明显的转换的有问题,
后来查了下API,是由于默认转换是宽松转换引起的,改为严格转换即可
sdf.setLenient(false);
第一次转换就会报错了,如下:
转换前日期:2019-09-01
Exception in thread "main" java.text.ParseException: Unparseable date: "2019-09-01" at java.text.DateFormat.parse(DateFormat.java:366) at com.datalook.util.common.DateUtils.main(DateUtils.java:50)
相关推荐
我们使用`SimpleDateFormat`类来解析日期字符串。`setLenient(false)`方法将解析器设置为非宽容模式,这意味着它会严格检查日期的合法性,例如2月不能有30天或31天(除非是闰年的2月29日)。 `parse`方法尝试将日期...
在Java中,`SimpleDateFormat`是一个用于格式化和解析日期的具体类,可以将日期转换成便于阅读的形式,也可以将字符串解析成日期。它属于`java.text`包。 示例代码: ```java DateFormat format1 = new ...
需要注意的是,`SimpleDateFormat`的`setLenient(false)`方法用于确保日期时间格式的严格匹配,避免因不规范的输入导致意外的结果。 在实际应用中,可能需要根据不同的日期格式进行转换。例如,日期格式可能是"2002...
在提供的代码示例中,`SimpleDateFormat`被用来根据给定的日期格式(如"yyyy-MM-dd kk:mm:ss"或"yyyy-MM-dd")解析字符串,并创建相应的`java.util.Date`对象。然后,通过调用`getTime()`方法,我们可以获取以毫秒为...
在使用 SpringMVC 框架时,经常会遇到表单中的日期字符串和 JavaBean 的 Date 类型的转换问题。 SpringMVC 默认不支持这个格式的转换,因此需要手动配置,自定义数据的绑定才能解决这个问题。在需要日期转换的 ...
这段代码注册了一个自定义的日期编辑器,用于将请求中的字符串格式转换为 `Date` 对象,并且可以设置日期格式不宽松。 #### 数据模型控制 在 Spring MVC 中,可以通过 `Model` 或 `ModelMap` 对象向视图传递数据。...