Java - String标准格式转换Date(yyyy-MM-dd HH:mm:ss)

最近在接收一个Android项目,需要连接webService,于是要封装SOAP对象,服务器接收的时间字段是datetime类型,原本我以为封装SOAP对象时候,String类型解决一切,但是错了。服务器只认可datetime(“yyyy-MM-dd HH:mm:ss”)。

在设计程序数据结构时候,一切时间字段都自动转换成String类型,用过Android本地数据库,大伙应该知道,会使用SQLite,它并不支持Date类型存储,只好转换成TEXT,再存到数据库。

但是再利用时候,就有问题了。于是,String转换Date,很郁闷,通常都是Date转换String,这些代码马上解决:

SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
java.util.Date date=new java.util.Date();
String str=sdf.format(date);

代码生疏,于是网上百度了一阵,String转换Date,好多文章是忽悠别人,通常搜索到以下的做法:

        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date d = new Date();
        String str = "2015-02-10 22:00:00";
        try {
            d = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").parse(str);
            System.out.println("DateTime>>>>>>: " + d);
        } catch (ParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

运行结果是:DateTime>>>>>>: Tue Feb 10 22:00:00 CST 2015

这与我想要的结果Date(yyyy-MM-dd HH:mm:ss),完全不同,况且,封装在SOAP时,程序会报错Tue Feb 10 22:00:00 CST 2015无法识别

后来终于是找到了我想要的结果Date(yyyy-MM-dd HH:mm:ss)

于是,我总结了以下,编写了测试程序,加深理解:

        String string = "2015-02-10 22:00:00";
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date d1;
        try {
            d1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(string);
            System.out.println("DateTime d1>>>>>>: " + d1);
            String d2 = format.format(d1);
            System.out.println("DateTime d2>>>>>>: " + d2);
            Date d3;
            d3 = format.parse(d2);
            System.out.println("DateTime d3>>>>>>: " + format.format(d3));
        } catch (ParseException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }

代码虽易,但真正有几个人真正理解,又在关键时候想出来呢?

Sometime it is good to fall to really know where you stand.

Good Night

你可能感兴趣的:(Android,java)