Как я могу преобразовать эту строку на стандартную дату в Java?
-
05-10-2019 - |
Вопрос
Ранее я разместил следующий вопрос: Как я могу конвертировать эту дату в Java?
Но теперь я хотел бы знать, как я могу конвертировать эту строку в дату / время.
2010-03-15T16:34:46Z
Например: 03/15/10
Обновлено:
String pattern = "MM/dd/yy 'at' HH:mm";
Date date = new Date();
try {
date = new SimpleDateFormat(pattern).parse(q.getUpdated_at());
} catch (ParseException e) {
e.printStackTrace();
}
dateText.setText(new SimpleDateFormat("MM/dd/yy 'at' hh:mma").format(date));
Дает мне результат, как:
Mon Mar 15 16:34:50 MST 2010
Как я могу отформатировать его
03/15/10 at 4:34PM
?
Решение
В двух словах вы хотите преобразовать дату в а. нить формат на свидание еще один нить формат. Отказ У тебя есть:
2010-03-15T16:34:46Z
и вы хотите
03/15/10 at 4:34PM
Вы не хотите в конечном итоге использовать java.util.Date
Объект, поскольку вы изначально подразумевали в вашем вопросе. Вы также не хотите использовать его toString()
Поскольку это возвращает фиксированный формат, как определено в его javadoc..
Ответ Божо по-прежнему относится. Использовать java.text.SimpleDateFormat
. Отказ Во-первых, вам нужно разбираться Дата в строковом формате в Date
объект, чтобы вы могли формат Он обратно в другой формат строки.
// First parse string in pattern "yyyy-MM-dd'T'HH:mm:ss'Z'" to date object.
String dateString1 = "2010-03-15T16:34:46Z";
Date date = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss'Z'").parse(dateString1);
// Then format date object to string in pattern "MM/dd/yy 'at' h:mma".
String dateString2 = new SimpleDateFormat("MM/dd/yy 'at' h:mma").format(date);
System.out.println(dateString2); // 03/15/10 at 4:34PM
Другие советы
Обе SimpleDateFormat
а также Joda-Time DateTimeFormat
Может разбирать это, используя этот шаблон:
String pattern = "yyyy-MM-dd'T'HH:mm:ss'Z'";
Например:
Date date = new SimpleDateFormat(pattern).parse(dateString);
И (Joda-Time):
DateTimeFormatter dtf = DateTimeFormat.forPattern(pattern);
DateTime dateTime = dtf.parseDateTime(s);
Обновлять
У вас есть 2 формата даты - один для разборка вход и один для форматирование выход. Так:
dateText.setText(new SimpleDateFormat("MM/dd/yy 'at' hh:mma").format(date));
(Конечно, ради оптимизации вы можете создать экземпляр SimpleDateFormat
только один раз, и повторно повторно его)
Если вы хотите отформатировать выходную строку, измените следующую строку в своем коде
dateText.setText(date.toString());
к
dateText.setText(String.format("%1$tm/%1$td/%1$ty at %1$tl:%1$tM%1$Tp", date));