2 ssummeraw ssummeraw 于 2013.09.06 15:46 提问

如何把日期转换成不同的格式?

我从 api 服务器中获取一些数据,包含数据和数据格式2013-09-06T14:15:11.557
这是什么格式呢?如何把这个数据格式转换为2013 sept 06 2:15
我使用下面2中方法来转换日期格式

public static Date stringToDate(String dateString)
    {
        Date date = null;
        DateFormat df = new SimpleDateFormat(Constants.DATE_FORMAT_WITHOUT_TIME);
        try {
            date = df.parse(dateString);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return date;
    }

public static String FormatDate(String dateString)
    {
        String s="";
        Date date = stringToDate(dateString);
        s = date.getDate()+" "+monthname[date.getMonth()+1]+" "+(date.getYear()+1900);
        return s;
        }

这是我的数据格式常量public static final String DATE_FORMAT_WITHOUT_TIME = "yyyy-MM-dd";,但是解析的不正确。

3个回答

Baby_Bonnie
Baby_Bonnie   2013.09.09 11:43
已采纳

你可以试一下下面的代码:

 String date="2013-09-06T14:15:11.557";
    DateFormat df=new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");
    Date d=df.parse(date);
    df=new SimpleDateFormat("yyyy-MMM-dd hh:mm");
    System.out.println(df.format(d));

输出:

2013-Sep-06 02:15
j_clxy
j_clxy 你的回答即晚(晚于我的回答30多个小时),又重复(内容甚至比我的还少)。最后还不够严谨,MMM这个格式只有在英语系的Locale下才会是Sep!比如中文的话就不是Sep而是‘九月’了。差不多是让楼主埋了个bug。
4 年多之前 回复
j_clxy
j_clxy   2013.09.07 20:11

你确信是sept,不是Sep,那样就简单多了。

下面是sept的代码。

    String fromFormat = "yyyy-MM-dd'T'hh:mm:ss.S";
    String toFormat = "yyyy '%s' dd h:m";
    String monthFormat = "MMMM";

    SimpleDateFormat sdf = new SimpleDateFormat(fromFormat);
    Date d = sdf.parse("2013-09-06T14:15:11.557");

    sdf = new SimpleDateFormat(toFormat);
    String s = sdf.format(d);
    String m = new SimpleDateFormat(monthFormat, Locale.ENGLISH).format(d);
    s = String.format(s, m.substring(0, 4).toLowerCase());

    System.out.println(s);
u011297630
u011297630   2013.09.06 17:14

date = df.parse(dateString);
这有问题

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!