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

Java 如何格式化2016-02-12T15:23:20+;02:00时间,java,android,date,Java,Android,Date,我从我们的网络服务中获取上述日期格式。我有一个关于如何格式化日期的想法,我只是对它作为一个字符串存在问题 我已经尝试过了,但我需要将其作为字符串返回,这在某种程度上不是问题 这是我尝试过的,但它引发了一个异常: java.text.ParseException:不可解析日期: “2016-02-26T00:00:00+02:00”(在偏移量4处) 代码: public static String formatDate(String unFormattedTime) { String

我从我们的网络服务中获取上述日期格式。我有一个关于如何格式化日期的想法,我只是对它作为一个字符串存在问题

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

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

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这样的格式?

这里是您想要实现的工作片段:

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”


下面是您想要实现的工作片段:

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”


如果您使用的是Java 8,可以尝试以下方法:

LocalDate parsedDate=LocalDate.parse(未格式化时间、ISO\u偏移量\u日期\u时间)

参考:


如果您使用的是Java 8,您可以尝试以下方法:

LocalDate parsedDate=LocalDate.parse(未格式化时间、ISO\u偏移量\u日期\u时间)

参考:


如果需要字符串,请使用新的SimpleDataFormat类重新格式化时间戳。不要使用getTime方法来获取long。您发布的链接告诉您如何将一个字符串解析为日期对象,您需要获得正确的格式以避免当前错误。您可以在格式化字符串之前替换“:”和“+”。还有,为什么您从Web服务中获得字符串表示?您不能获取日历或日期对象本身吗?只需使用DateFormat DateFormat df=new SimpleDateFormat(“dd MMM HH:mm”);也许你应该处理这个字符串。如果你想要一个字符串,那么使用一个新的SimpleDataFormat类来重新格式化时间戳。不要使用getTime方法来获取long。您发布的链接告诉您如何将一个字符串解析为日期对象,您需要获得正确的格式以避免当前错误。您可以在格式化字符串之前替换“:”和“+”。还有,为什么您从Web服务中获得字符串表示?您不能获取日历或日期对象本身吗?只需使用DateFormat DateFormat df=new SimpleDateFormat(“dd MMM HH:mm”);也许你应该处理好这根绳子。这很有魅力!!!看来我只是把它搞错了,先格式化,然后解析。谢谢你的工作就像一个魅力!!!看来我只是把它搞错了,先格式化,然后解析。谢谢你