`
snlilei
  • 浏览: 7611 次
  • 性别: Icon_minigender_1
  • 来自: 南京
文章分类
社区版块
存档分类
最新评论

java SimpleDateFormat格式化日期的搞笑bug

 
阅读更多
今天不是2-29吗,四年一见的难得日子,结果java认不出来了。

代码:
public static final DateFormat DF_LONG = new SimpleDateFormat("YYYY-MM-DD HH:mm:ss");

String timestamp = Constant.DF_LONG.format(new Date());

结果得到:2012-02-60 08:42:11



改了一下系统时间,又试了一下,发现不是因为2-29日的原因。
系统时间改为2-28,则显示 2012-02-58 09:03:12
改为3-1,则显示2012-03-61 09:05:15


把YYYY-MM-DD改为YYYY-MM-dd就能得到正确的日期了。
还发现如果把MM改为mm,则把时间的分钟显示到日期的月份里面去了


分享到:
评论
2 楼 snlilei 2012-02-29  
把YYYY-MM-DD改为YYYY-MM-dd就能得到正确的日期了。

还发现如果把MM改为mm,则把时间的分钟显示到日期的月份里面去了

1 楼 snlilei 2012-02-29  
改了一下系统时间,又试了一下,发现不是因为2-29日的原因。
系统时间改为2-28,则显示 2012-02-58 09:03:12
改为3-1,则显示2012-03-61 09:05:15

相关推荐

    Java中日期格式化YYYY-DD的操作bug

    Java中日期格式化YYYY-DD的操作bug Java中日期格式化YYYY-DD的操作bug是一种常见的错误,它会导致日期格式化不正确,特别是在跨年的时候。这种错误的产生是因为Java中的日期格式化使用了week-based year,即YYYY...

    JavaCalendar_JAVA源码_

    对于复杂的时间计算和格式化,可以使用`SimpleDateFormat`或Java 8引入的`DateTimeFormatter`。 总的来说,Java的`Calendar`类是处理日期和时间的核心工具,虽然在Java 8后有新的API取代,但在大量存在的旧代码和库...

    xk-time Java时间工具包.zip

    这个工具包提供了更高效、更直观的方式来操作和格式化日期、时间以及时间间隔,提高了开发效率并降低了出错的可能性。 在Java标准库中,`java.util.Date`和`java.text.SimpleDateFormat`等类虽然能够满足基本的时间...

    java工具类

    `java.time`包(自Java 8引入)提供了更友好的`LocalDate`、`LocalTime`和`LocalDateTime`等类,而`java.text.SimpleDateFormat`用于格式化和解析日期。此外,Apache Commons Lang和Google的Guava库也提供了额外的...

    javase阶段bug解决笔记

    - 在处理日期时间时,有时会遇到月份英文缩写导致的时间格式化问题。 - **解决方案**: 添加语言环境参数到`SimpleDateFormat`构造函数中,例如: ```java String s = "18/Sep/2013:06:49:23"; SimpleDateFormat sdf...

    听说用了YYYY-MM-dd的程序员,前些天都在加班改Bug

    在 Java 中,日期格式化是非常重要的一方面,使用正确的日期格式可以避免许多 Bug 的出现。今天,我们将讨论 YYYY-MM-dd 和 yyyy-MM-dd 的差异性,並探究为什么它们会产生不同的结果。 首先,让我们了解DateFormat...

    藏经阁-Java开发手册(泰山版)灵魂13问-117.pdf

    应为每个线程实例化一个SimpleDateFormat对象,或使用线程安全的日期格式化工具。 9. **禁止使用isSuccess作为变量名**: "isSuccess"这样的命名可能与JavaBeans的约定冲突,可能导致框架或工具误解析为getter方法...

    commons-lang-3-3.1 jar包和源码包

    4. **日期与时间**:DateUtils 提供了日期和时间的处理,如格式化、解析、比较等,而FastDateFormat 是一个高性能的日期格式化工具,比Java内置的SimpleDateFormat更快。 5. **枚举操作**:EnumUtils 提供了处理...

    Java ThreadLocal 线程安全问题解决方案

    例如,`SimpleDateFormat` 是非线程安全的,因为它内部使用了一个`Calendar`对象,多个线程同时使用一个`SimpleDateFormat`实例进行解析或格式化日期时,可能会出现线程A操作未完成而线程B已经开始的问题,导致数据...

    commons-lang3-3.2.1-bin.zip

    - `FastDateFormat`:比`SimpleDateFormat`更高效的日期格式化类。 4. **类型转换**: - `TypeConverter`:提供了一种统一的类型转换机制,支持多种类型的转换。 5. **枚举操作**: - `EnumUtils`:提供了对...

    joda-time2.4源码及编译

    1. **格式化与解析**:Joda-Time提供DateTimeFormatter,可以自定义日期时间格式进行解析和格式化,避免了使用SimpleDateFormat带来的线程安全问题。 2. **时间区间操作**:通过Interval类,可以方便地进行时间区间...

    fastjson.jar包

    - **日期格式化**: 自定义日期格式,如`JSON.toJSONString(obj, SerializerFeature.WriteDateUseDateFormat, new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"))`。 - **注解支持**: 使用`@JSONField`注解可以自定义...

    Android Digital Clock Demo beta1

    在Android中,我们可以利用`java.text.SimpleDateFormat`和`java.util.Calendar`类来格式化和获取当前日期与星期。这些信息可以显示在时钟视图的下方或者以悬浮小窗口的形式呈现。为了确保实时更新,可以设置一个...

    android 备忘录和课程表源码

    - **Java 8时间API** 或 **Android的java.text.SimpleDateFormat**:在处理课程时间和提醒时,会用到时间日期的格式化和解析,源码会展示如何正确处理。 5. **Material Design原则** - 由于描述提到布局精美,...

    lab1_countries

    在处理国家数据时,Java提供了丰富的库和API,如`java.text.SimpleDateFormat`和`java.time`包,用于日期和时间的格式化,以适应不同的地区设置。 在“lab1_countries-master”这个压缩包中,我们可以期待找到以下...

    personal-utils:只是一些个人公用事业

    个人工具包可能封装了这些API,提供易用的日期时间格式化和计算方法。 3. **字符串处理**:字符串操作是编程中最常见的任务之一。个人工具包可能会包含一些字符串拼接、分割、替换、检查等辅助方法,使处理字符串...

Global site tag (gtag.js) - Google Analytics