`
yangbb
  • 浏览: 33886 次
  • 来自: ...
社区版块
存档分类
最新评论

DateUtils.parseDate解析时间

    博客分类:
  • java
阅读更多
今天偶然用到字符串到时间的转换,使用的是org.apache.commons.lang.time.DateUtils.paraseDate(String sDate,String[] parasePatterns);

在使用的时候,发现一个问题
String[] pattern = new String[]{"yyyy-MM","yyyyMM","yyyy/MM",
    			"yyyyMMdd","yyyy-MM-dd","yyyy/MM/dd",
    			"yyyyMMddHHmmss",
                            "yyyy-MM-dd HH:mm:ss",
                            "yyyy/MM/dd HH:mm:ss"};
DateUtils.parseDate(date, pattern);


数组pattern中元素的顺序是比较重要的,如果yyyy-MM在yyyyMMdd之后,当解析2009-10的时候,将不会得到预期的时间。

System.out.println(
       DateUtils.parseDate("2009-10", new String[]{"yyyy-MM"}));
System.out.println(
       DateUtils.parseDate("2009-10", new String[]{"yyyyMMdd"}));

输出结果
Thu Oct 01 00:00:00 CST 2009
Fri Oct 31 00:00:00 CST 2008

所以如果pattern数组里面yyyyMMdd在yyyy-MM之前,当解析2009-10的时候,
返回的是Fri Oct 31 00:00:00 CST 2008,
而不是预期的Thu Oct 01 00:00:00 CST 2009
同理,对于yyMM和yyMMdd也存在这样的问题。

看下源码,采用的是SimpleDateFormat.parase(String sDate,ParsePosition pos)。有时间再看看这个是为啥。
分享到:
评论
1 楼 Black_Sun 2018-03-27  
String[] parsePatterns = { "yyyyMMddHHmm", "yyyyMMddHH", "yyyyMMdd", "yyyyMM" };

相关推荐

    时间的帮助类DateUtils.zip

    在Java标准库中,虽然有`java.util.Date`和`java.text.SimpleDateFormat`等类可以处理日期和时间,但它们的使用往往较为复杂,因此开发者经常创建自定义的`DateUtils`来封装常用操作,提高代码的可读性和可维护性。...

    DateUtils.java

    - 处理日期时间操作过程中可能出现的异常,如 `ParseException`(解析日期字符串时),`IllegalArgumentException`(非法参数传递)等。 这个`DateUtils` 工具类的使用可以极大地简化日期时间的操作,提高代码的...

    DateUtils.rar

    `DateUtils`可能会提供便捷的方法来实现这一过程,例如`formatDate(Date date, String pattern)`和`parseDate(String str, String pattern)`。 2. **日期比较**:为了比较两个日期,`DateUtils`可能包含`isBefore...

    dateparse:GoLang解析许多日期字符串而无需事先知道格式

    去日期解析器 解析许多日期字符串而无需事先知道格式。...t , err := dateparse . ParseAny ( "3/1/2014" ) // Parse Strict, error on ambigous mm/dd vs dd/mm dates t , err := dateparse . ParseStr

    时间工具类 DateUtils

    3. **日期比较**:`DateUtils` 可能提供`isBefore(Date date1, Date date2)`、`isAfter(Date date1, Date date2)`和`isEqual(Date date1, Date date2)`这样的比较方法,用于判断两个日期的先后关系。 4. **时间间隔...

    DateUtil(通用日期工具类)

    反之,`parse(String str, String pattern)`方法则用于将字符串解析成Date对象。 3. **日期比较**: DateUtil可能包含`compare(Date date1, Date date2)`方法,根据日期的先后顺序返回一个整数值,如果date1在date...

    Struts中使用Util时日期的处理(源码)

    例如,当我们从数据库查询结果中获取到一个日期字段时,它通常是以String的形式返回,我们需要使用`DateUtils.parseDate()`将其转换为Date对象,然后可以进一步处理或展示。相反,如果我们需要将用户输入的日期保存...

    PyPI 官网下载 | dateutils-0.6.11.tar.gz

    `dateutils` 是一个 Python 库,专门用于增强 Python 的日期和时间处理能力,它提供了许多实用的功能,使得开发者能够更高效地处理日期和时间数据。`dateutils-0.6.11.tar.gz` 是这个库的源码压缩包,可以在 PyPI...

    StringUtils NumberUtils DateUtils

    例如,可以使用`DateUtils.parseDate("2022-01-01", "yyyy-MM-dd")`将字符串转换为日期对象,或者使用`DateUtils.addDays(date, 7)`来增加日期。这类工具类通常会处理时区问题,使得日期处理更加准确和便捷,避免了...

    Java日期处理工具类DateUtils详解

    DateUtils工具类也提供了日期解析的方法,例如parseDate方法可以将字符串形式的日期解析为日期对象,例如: ```java public static Date parseDate(String dateValue) { return parseDate(dateValue, null); } ```...

    commons-lang-2.4.jar

    `DateUtils`可以进行日期的解析、格式化和比较,如`DateUtils.parseDate()`可以将字符串转换为日期对象,`DateUtils.isSameDay()`则可以判断两个日期是否为同一天。`FastDateFormat`是比`SimpleDateFormat`更高效的...

    flex 学习项目中总结的时间处理工具类DateUtils

    8. **日期解析**:`parseDate`方法可能接受一个格式化的日期字符串,并尝试将其解析为日期对象。这对于用户输入的日期处理非常有用。 在Flex项目中,`DateUtils`类的这些功能可以极大地提高代码的可读性和可维护性...

    struts的form不能初始化java.util.Date类型

    2. **使用JSP标签库**:可以利用Struts提供的`<html:text>`标签或者更现代的JSTL `<fmt:formatDate>`和`<fmt:parseDate>`标签,它们能够帮助在视图层进行日期的格式化和解析,确保传入ActionForm的日期字符串是正确...

    DateUtils_日期工具_

    - `parseDate(String dateStr, String... patterns)`:此方法可以尝试用多个日期格式来解析字符串,直到找到一个匹配的格式。这样避免了因不确定输入日期格式而引发的异常。 - `formatDate(Date date, String ...

    日期工具类

    在这个案例中,我们讨论的是一个名为`DateUtils.java`的文件,它可能包含了对Java内置`java.util.Date`、`java.time`或者其他日期时间API的扩展或封装。 `DateUtils.java`可能包含以下知识点: 1. **日期时间API的...

    系统日历的操作【android】

    Date startDate = DateUtils.parseDate(dateString, "yyyy-MM-dd HH:mm:ss"); ``` 除了基础操作外,还可以考虑使用EventAccessLevel来控制事件的可见性,或者使用AlarmManager来设置提醒。对于多用户环境,还可以...

    DateUtils:日期实用程序

    - **日期格式化与解析**:`DateUtils`提供了多种格式化日期和时间的函数,例如`format()`和`parse()`, 支持自定义日期时间格式,如"yyyy-MM-dd HH:mm:ss",能够将日期对象转换为字符串,或反向将字符串解析成日期...

    自己封装的DateUtils工具类

    在Java编程中,DateUtils工具类是一个非常实用的辅助类,它封装了各种日期和时间处理的方法,大大简化了开发者在处理日期时的工作。这里我们深入探讨一下自定义的DateUtils工具类及其重要功能。 首先,`DateUtils`...

    java中DateUtils时间工具类详解

    首先,DateUtils 时间工具类提供了多种方法来操作日期和时间,包括获取几天前的时间、获取几天后的时间、获取当前时间戳、日期格式字符串转换成时间戳、Date 转化为时间戳、将 String 转化为 Date 等。 获取几天前...

    common-lang3.jar

    2. 日期格式化:`DateUtils.parseDate()`可以解析多种格式的日期字符串,而`DateFormatUtils.format()`则可以将日期对象格式化为指定的字符串。 3. 反射调用方法:`MethodUtils.invokeExactMethod()`允许精确地调用...

Global site tag (gtag.js) - Google Analytics