java - SimpleDateFormat 解析返回年终日期

标签 java parsing simpledateformat

我有这个简单的例子:

SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/YY");
        System.out.println( sdf.format(new Date()));
        try {
            System.out.println(  sdf.parse("10/18/14")  );
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

在控制台中,我得到 2014年10月18日 2013 年 12 月 29 日星期日 00:00:00 美国东部时间

任何解释为什么 sdf.parse 返回 2013 年 12 月 29 日而不是 2014 年 10 月 18 日

最佳答案

您的格式StringYY,应该是yy

SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yy");

根据 SimpleDateFormat Javadoc(部分说明),

Letter    Date or Time Component  Presentation    Examples
G         Era designator          Text            AD
y         Year                    Year            1996; 96
Y         Week year               Year            2009; 09

目前您正在获取周年

当我进行上述更改时,我得到了(预期的)

10/18/14
Sat Oct 18 00:00:00 EDT 2014

关于java - SimpleDateFormat 解析返回年终日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26445061/

相关文章:

java - 下次调用 PaintComponent() 时 Graphics2D 是否会重置合成?为什么?

mysql - 解析查询时如何区分 AS 关键字的使用

Java如何获取给定时区缩写的时区ID列表

java - 来自比较器的未处理异常类型 ParseException

Java日期解析问题-SimpleDateFormat自动递减月份

java - matlab中大小的java表示是什么

java - 以编程方式从 Eureka Server 中删除已注册的实例

java - Akka Java OneForOneStrategy 示例未编译

php - 远程解析 XML 与使用 cURL 本地保存文件并在本地解析

c++ - 简单的 C++ MIME 解析器