A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yangyinhui 中级黑马   /  2013-4-3 21:36  /  1407 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public static void main(String[] args) throws Exception  {
                demo1();
                demo2();
        }


        private static void demo2() throws Exception {
                String s="2003-02-03 20:03:30";
                SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
                Date date=sdf.parse(s);
                System.out.println(date);
        }
               

        private static void demo1() {
                Date date=new Date();
                SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss ");
                String s=sdf.format(date);
                System.out.println(s);
        }

}
输出结果
demo1():2013-04-03 21:32:56
demo2():      Mon Feb 03 20:03:30 CST 2003
我的问题是问什么它们两个的输出格式不一样呢?

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

3 个回复

倒序浏览
刚才电脑卡以为没发表所以发重复了
回复 使用道具 举报
我是这么想的。

我觉得问题可能在Demo2中的Date date=sdf.parse(s);这一句上。

按照这个线索查找API文档,发现这个方法是DateFormat的。

里面说See the parse(String, ParsePosition) method for more information on date parsing.

然后在public abstract Date parse(String source, ParsePosition pos)里面有如下的解释:

This parsing operation uses the calendar to produce a Date.
As a result, the calendar's date-time fields and the TimeZone value may have been overwritten, depending on subclass implementations.
Any TimeZone value that has previously been set by a call to setTimeZone may need to be restored for further operations.

用parser方法得到一个Date对象,这个对象的TimeZone属性可能被重写过。我觉得可能是这个原因。更加具体的原因我也不知道了~~

在Demo2里面加一句format处理,得到的是个字符串。这时候就输出一致了。
  1. ...
  2. Date date = sdf.parse(s);
  3. String dateStr = sdf.format(date); // 再次格式化一下,得到字符串               
  4. System.out.println(dateStr);
  5. ...
复制代码
希望能帮到你。共同学习,共同进步!

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

回复 使用道具 举报
王俊杰 发表于 2013-4-3 22:34
我是这么想的。

我觉得问题可能在Demo2中的Date date=sdf.parse(s);这一句上。

2013-04-03 23:03:22
2003-02-03 20:03:30
好的,我得到结果了,也明白了原因,谢谢了,愿我们共同进步,哈哈。。

点评

记得随时把解决掉的问题改成已解决  发表于 2013-4-3 23:46
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马