Я искал повсюду и просто не могу найти объяснения или причины, почему это происходит, но метод DateFormat синтаксического анализа (String) просто неправильно анализирует мою строку.
Я пытаюсь проанализировать строку в формате даты, который используется для заголовков HTTP и дошел до получения строки самостоятельно, такой как:
Thu, 11 Nov 2010 18:34:22 GMT
в формате:
E, d MMM yyyy HH:mm:ss z
Но когда я использую df.parse(dateStr);
, это то, что я получаю из этого:
Thu Nov 11 18:34:22 GMT 2010
Что не похоже на то, что я хотел, почему сейчас год после GMT? Почему больше нет запятой? И почему дата после месяца?
Я сейчас совершенно запутался в этом и не могу найти решение, но мне действительно нужна дата в этом формате. Запятая все портит? или двоеточия?
Спасибо за ваше время,
Infinitifizz
приписка
Забыл упомянуть об этом, но я пробовал dateformat.setLenient (false), и это не имеет значения.
P.P.S
Я пытаюсь сделать это, чтобы сравнить даты с date1.before (date2) и after () и т. Д., Чтобы увидеть, является ли один новее другого, но я не могу этого сделать, потому что синтаксический анализ не работает.
Несмотря на то, что они выглядят одинаково, но только формат отличается, они не одинаковы, потому что после вызова getTime () для них обоих (когда я предоставил 2 одинаковые даты), long не совпадают. Как в дате:
Чт, 11 ноября 2010 19:38:52 GMT для lastModified () для файла
Если я введу строку «Чт, 11 ноября 2010 г. 19:38:52 GMT», а затем сравню их длинные значения, после преобразования строки в дату с помощью parse () и последующего вызова getTime () в эту дату, я получаю:
lastModified = 1289504332671
fromString = 1289504332000
Отличаются только последние 3 цифры, имеет ли это какое-либо значение?
Еще раз спасибо за ваше время и извините, я не поставил этот бит первым,
Infinitifizz