Android将DateTime转换为EEE,d MMM yyyy

时间:2017-01-10 21:14:10

标签: android datetime

我正在尝试将以下数据时间转换为EEE,d MMM yyyy格式,但仍保持Unparsable日期格式。请有人帮忙。我无法在网上找到任何有帮助的内容。

这是代码

Spock Kirk Bones Picard Uhura Chekov
Spock Kirk Bones Uhura Chekov
Spock Kirk Bones Picard Uhura Chekov
Spock Kirk Bones Uhura Chekov Picard

非常感谢任何帮助伤口。提前致谢

3 个答案:

答案 0 :(得分:1)

无法使用您的格式"2017-01-12T00:00:00Z"解析日期字符串"EEE, d MMM yyyy HH:mm:ss Z";字段类型错误或位置错误。

datestr "2017-01-12T00:00:00Z"的格式应为:

       yyyy-MM-dd'T'HH:mm:ssZ

您需要使用此格式初始化SimpleDateFormat以解析datestr

格式"EEE, d MMM yyyy HH:mm:ss Z"会解析看起来像

的日期
       Thu, 1 Jan 2017 00:00:00 Z

阅读文档以了解parse()format()之间的区别。

答案 1 :(得分:0)

您必须首先解析它,将其存储为Date对象,然后使用另一个SimpleDateFormat以所需方式进行格式化。

String datestr = "2017-01-12T00:00:00Z";

SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ", Locale.US);
SimpleDateFormat dateFormat2 = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z", Locale.US);

Date date = dateFormat.parse(datestr);
String convertedDateStart = dateFormat2.format(date);

答案 2 :(得分:0)

如果您想要 FORMAT 并获得具有该格式的日期字符串,这将对您有用..

        String datestr = "2017-01-12T00:00:00Z";
        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'", Locale.US);

        try {
            date = dateFormat.parse(datestr);
        } catch (ParseException e) {
            e.printStackTrace();
        }

        dateFormat = new SimpleDateFormat("EEE, d MMM yyyy HH:mm:ss Z", Locale.US);

        datestr = dateFormat.format(date);

        System.out.println(datestr);

这将为您提供2017年1月12日星期四00:00:00 + 0430日期字符串。