转换日期格式时崩溃

时间:2018-02-05 07:30:55

标签: android date calendar

我从服务器端获取此日期格式时遇到崩溃,然后我在谷歌进行了分析,但没有得到任何正确的解决方案。如何将此日期格式转换为以下方式 崩溃发生在" startDate":" 2018-01-23T00:00:00.000-05:00" 此日期

预计日期格式:" 2018-01-24 00:43:10 -0500" 建议一些可能的解决方案。

 SimpleDateFormat inFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z");
    inFormat.setTimeZone(TimeZone.getDefault());
    String date = null;
    try {
        Date toConvert = inFormat.parse(OurDate);
        date = inFormat.format(toConvert);
    } catch (ParseException e) {         
        e.printStackTrace();
    }
    return date.toString();
}

2 个答案:

答案 0 :(得分:0)

这里有一个你想要实现的工作片段:

public class FormatDateExample {
    public static void main(String[] args) {
        String date =  "2016-02-26T00:00:00+02:00";
        System.out.println(formatDate(date));

    }

    public static String formatDate(String unFormattedTime) {
         String formattedTime;
         try {
             SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
             Date date = sdf.parse(unFormattedTime);

             sdf = new SimpleDateFormat("dd MMM HH:mm");
             formattedTime = sdf.format(date);

             return formattedTime;

        } catch (ParseException e) {
             e.printStackTrace();
        }

        return "";
    }
}

首先,您必须使用给定的格式解析日期

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
Date date = sdf.parse(unFormattedTime);

然后你必须将那个日期格式化为所需的格式" dd MMM HH:mm"

sdf = new SimpleDateFormat("dd MMM HH:mm");
formattedTime = sdf.format(date);

来源.. https://stackoverflow.com/a/35500350/3790052

答案 1 :(得分:0)

试试这个

SimpleDateFormat input = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS");

SimpleDateFormat output = new SimpleDateFormat("dd/MM/yyyy");
SimpleDateFormat output1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z");

Date d = null;
try 
{
      d = input.parse("2018-01-23T00:00:00.000-05:00");

} 
catch (ParseException e) 
{
    e.printStackTrace();
}
String formatted = output.format(d);
Log.i("DATE", "" + formatted);

String formatted1 = output1.format(d);
Log.i("DATE1", "" + formatted1);

<强>输出

I/DATE: 23/01/2018

I/DATE1: 2018-01-23 00:00:00 +0530