Java.util.date для строки с использованием DateTimeFormatter

Как я могу конвертировать java.util.Date в String используя

 DateTimeFormatter dateTimeFormatter = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss")

Объект Date, который я получаю, передается

DateTime now = new DateTime(date);

Ответ 1

Если вы используете Java 8, вы не должны в первую очередь использовать java.util.Date (если только вы не получили объект Date из библиотеки, которую вы не можете контролировать).

В любом случае вы можете преобразовать Date в java.time.Instant используя:

Date date = ...;
Instant instant = date.toInstant();

Поскольку вас интересуют только дата и время без информации о часовом поясе (я предполагаю, что все указано в формате UTC), вы можете преобразовать этот момент в объект LocalDateTime:

LocalDateTime ldt = instant.atOffset(ZoneOffset.UTC).toLocalDateTime();

Наконец, вы можете распечатать его с помощью:

DateTimeFormatter fmt = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss");
System.out.println(ldt.format(fmt));

Или используйте предопределенный форматер DateTimeFormatter.ISO_LOCAL_DATE_TIME.

System.out.println(ldt.format(DateTimeFormatter.ISO_LOCAL_DATE_TIME));

Обратите внимание, что если вы не предоставите средство форматирования, вызов ldt.toString даст вывод в стандартном формате ISO 8601 (включая миллисекунды) - это может быть приемлемо для вас.

Ответ 2

DateTime dt = new DateTime(date);
DateTimeFormatter dtf = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss");
dt.toString(dtf)

Ответ 3

Вы можете использовать класс форматера:

final DateTimeFormatter formatter = DateTimeFormat.forPattern("yyyy-MM-dd'T'HH:mm:ss")
        .withZone(DateTimeZone.UTC);

System.out.println(DateTime.now().toString(formatter));

Ответ 4

так как я использую API joda: ergo, DateTimeFormatter отправляется из org.joda.time.format.DateTimeFormatter:

 String dateTime = "02-13-2017 18:20:30";
// Format for input
DateTimeFormatter dtf = DateTimeFormat.forPattern("MM-dd-yyyy HH:mm:ss");
// Parsing the date
DateTime jodatime = dtf.parseDateTime(dateTime);

System.out.println(jodatime );

Ответ 5

DateTimeFormatterOBJECT=DateTimeFormatter.ofPattern("DD/MMM/YYYY HH//MM/SS");

String MyDateAndTime= LocalDate.now().format(DateTimeFormatterOBJECT);