Java SimpleDateFormat - PullRequest
       5

Java SimpleDateFormat

13 голосов
/ 20 июня 2011

в Java, как разобрать строку даты, которая содержит букву, которая не представляет шаблон?

"2007-11-02T14:46:03+01:00"
String date ="2007-11-02T14:46:03+01:00";
String format = "yyyy-MM-ddTHH:mm:ssz";
new SimpleDateFormat(format).parse(date);

Exception in thread "main" java.lang.IllegalArgumentException: Illegal pattern character 'T'
    at java.text.SimpleDateFormat.compile(SimpleDateFormat.java:769)
    at java.text.SimpleDateFormat.initialize(SimpleDateFormat.java:576)
    at java.text.SimpleDateFormat.(SimpleDateFormat.java:501)
    at java.text.SimpleDateFormat.(SimpleDateFormat.java:476)

Ответы [ 4 ]

21 голосов
/ 20 июня 2011

Вы можете попробовать

String format = "yyyy-MM-dd'T'HH:mm:ssz";

Ссылка: от Javadoc

Текст можно заключать в кавычки ('), чтобы избежать интерпретации.

5 голосов
/ 20 июня 2011

Время, которое вы пытаетесь проанализировать, по-видимому, в формате ISO 8601 .К сожалению, SimpleDateFormat не поддерживает все те же спецификаторы часовых поясов, что и ISO 8601. Если вы хотите правильно обрабатывать все формы, указанные в ISO, лучше всего использовать Время Joda .

Этот пример прямо из руководства пользователя :

DateTime dt = new DateTime("2004-12-13T21:39:45.618-08:00");
0 голосов
/ 26 октября 2012

Если вас не волнует часовой пояс, вы можете использовать этот метод.

  public static Date convertToDate(String strDate) throws ParseException {
    Date date = null;
    if (strDate != null) {
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss");
      date = sdf.parse(strDate);
    }
    return date;
  }

Я не знаю, будет ли он по-прежнему полезен для вас, но я столкнулся с той же проблемой сейчас,и через некоторое время я придумываю это.

0 голосов
/ 20 июня 2011
String testDate = "2007-11-02T14:46:03+01:00";
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssz");
Date date = formatter.parse(testDate);
System.out.println(date);

Вы можете попробовать аналогично вышеуказанному

Вы можете использовать следующую ссылку для справки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...