如何格式2016-02-12T15:23:20 + 02:00时间

时间:2016-02-19 07:59:05

标签: java android date

我从我们的网络服务获取上述日期格式。我对如何格式化日期有一个想法,我只是遇到了它作为字符串出现的问题。

我已经尝试this但我需要将其作为字符串返回,这在某种程度上不是问题。

这是我尝试的但它引发了一个异常:

  

java.text.ParseException:无法解析的日期:   " 2016-02-26T00:00:00 + 02:00" (在偏移4处)

代码:

  public static String formatDate(String unFormattedTime) {
    String formattedTime;
    try {
      SimpleDateFormat sdf = new SimpleDateFormat("dd MMM HH:mm");
      Date date = sdf.parse(unFormattedTime);

      formattedTime = sdf.format(date);
      return formattedTime;

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

    return "";
  }

我怎么能用像dd MMM HH:mm?

这样的格式来格式化它

2 个答案:

答案 0 :(得分:4)

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

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);

答案 1 :(得分:0)

如果您使用的是Java 8,可以试试这个:

LocalDate parsedDate = LocalDate.parse(unFormattedTime,ISO_OFFSET_DATE_TIME)

价: https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html

https://docs.oracle.com/javase/8/docs/api/java/time/format/DateTimeFormatter.html#ISO_OFFSET_DATE_TIME