解析一些字符串日期为另一种格式 [英] Parse some string date to another format

查看:252
本文介绍了解析一些字符串日期为另一种格式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有问题的格式化日期。

:EEE,D MMM YYYY HH:MM:SS Z(例如:星期一,2014年1月5日15:10:00 +0200)

From : EEE, d MMM yyyy HH:mm:ss Z (example : Mon, 05 Jan 2014 15:10:00 +0200)

:DD / MMM / YYYY HH:MM(例如:2014年5月1日15:10)

To : dd/MMM/yyyy HH:mm (example : 05/01/2014 15:10)

下面是我尝试:

private String formatDate(String date) {
    SimpleDateFormat format = new SimpleDateFormat("dd/MMM/yyyy HH:mm");
    Date dateResult = null;
    try {
        dateResult = format.parse(date);
    }
    catch (java.text.ParseException e) {
        Log.e(TAG, "", e);
    }
    return dateResult.toString();
}

我得到异常:无法解析日期偏移0

一些帮助将是一个很不错的感谢;)

some help would be nice here thanks ;)

推荐答案

您需要两次转换。例如:

You need two times converting. For example:

private String formatDate(String date) {
    SimpleDateFormat formatFrom = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss Z ");

    java.util.Date tmpDate = formatFrom.parse(date);
    SimpleDateFormat formatTo = new SimpleDateFormat("dd/MMM/yyyy HH:mm");
    return formatTo.format(tmpDate);
}

有关我自己的RSS解析器我用下面的code解析不同的日期格式:

For my own RSS parser I use the following code to parse different date formats:

    if (value.contains("+")) {
        value = value.substring(0, value.lastIndexOf("+") - 1);
    }

    String[] patterns = {//"EEE, dd MMM yyyy hh:mm:ss UTC",
            "yyyy.MM.dd G 'at' HH:mm:ss z",
            "EEE, MMM d, ''yy",
            "yyyyy.MMMMM.dd GGG hh:mm aaa",
            "EEE, d MMM yyyy HH:mm:ss Z",
            "yyMMddHHmmssZ",
            "d MMM yyyy HH:mm:ss z",
            "yyyy-MM-dd'T'HH:mm:ss",
            "yyyy-MM-dd'T'HH:mm:ss'Z'",
            "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'",
            "yyyy-MM-dd'T'HH:mm:ssZ",
            "yyyy-MM-dd'T'HH:mm:ss.SSSZ",
            "yyyy-MM-dd'T'HH:mm:ssz",
            "yyyy-MM-dd'T'HH:mm:ss.SSSz",
            "EEE, d MMM yy HH:mm:ssz",
            "EEE, d MMM yy HH:mm:ss",
            "EEE, d MMM yy HH:mm z",
            "EEE, d MMM yy HH:mm Z",
            "EEE, d MMM yyyy HH:mm:ss z",
            "EEE, d MMM yyyy HH:mm:ss Z",
            "EEE, d MMM yyyy HH:mm:ss ZZZZ",
            "EEE, d MMM yyyy HH:mm z",
            "EEE, d MMM yyyy HH:mm Z",
            "d MMM yy HH:mm z",
            "d MMM yy HH:mm:ss z",
            "d MMM yyyy HH:mm z",
            "d MMM yyyy HH:mm:ss z"};

    for (int i = 0; i < patterns.length; i++) {
        SimpleDateFormat sdf = new SimpleDateFormat(patterns[i], Locale.ENGLISH);
        try {
            pubdate = sdf.parse(value);

            break;
        } catch (Exception e) {
        }
    }

这篇关于解析一些字符串日期为另一种格式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆