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

我从 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个回答

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

 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
clxy大叔 你的回答即晚(晚于我的回答30多个小时),又重复(内容甚至比我的还少)。最后还不够严谨,MMM这个格式只有在英语系的Locale下才会是Sep!比如中文的话就不是Sep而是‘九月’了。差不多是让楼主埋了个bug。
6 年多之前 回复

你确信是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);

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

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问