2016-10-11 5 views
-3

Есть ли способ конвертировать дату в формате «YYYY-MM-dd» в «YYYY-MM-dd HH: mm: ss» с помощью Joda?Преобразование даты в DateTime с использованием Joda

Например: "2016-01-21" до "2016-01-21 00:00:00"

+2

Вам необходимо по крайней мере найти этот сайт и, возможно, google, и самостоятельно решить проблему, прежде чем задавать вопросы. Пожалуйста, прочитайте [ask]. –

ответ

3

Использование DateTimeFormat класса из Joda API. Это поможет вам отформатировать дату до форматирования по вашему выбору. Вы можете просто предоставить желаемый формат, например, в этом случае вы хотите «ГГГГ-ММ-ДД ЧЧ: мм: сс». Код ниже работает с JodaTime 2.0 и выше.

DateTime date = DateTime.parse("2016-01-21", DateTimeFormat.forPattern("YYYY-MM-dd HH:mm:ss")); 

Есть две вещи в игре здесь, сначала нужно проанализировать существующую строку в DateTime объекта, который делается с помощью метода parse, он также позволяет дополнительный аргумент, чтобы преобразовать выход в другое формат. Ниже дается более длинная, но понятная реализация.

DateTime date = DateTime.parse("2016-01-21"); 
DateTimeFormatter formatter = DateTimeFormat.forPattern("YYYY-MM-dd HH:mm:ss"); 
date = formatter.parseDateTime(string); 
1

Ваш вопрос не ясен:

Вы хотите просто отформатировать «нечто представляющее дату» в строку с временем «00:00:00»?

Или вы пытаетесь преобразовать «что-то представляющее дату» в «что-то, представляющий дату + время, с течением времени 00:00:00»?

Или вы пытаетесь конвертировать java.util.Date в Joda org.joda.time.DateTime, игнорируя исходное время и время, чтобы установить 00:00:00?

Или вы пытаетесь преобразовать строку даты с форматом «YYYY-MM-dd» в другую строку с датой + временем, с 00:00:00 как время?

Или что-то еще?


В Joda, правильный способ представления даты является LocalDate, и надлежащим образом представлять «дата + время» информации (но не момент времени) является LocalDateTime. DateTime представляет собой момент времени. С этим основным пониманием:

Ответ на Q1:

String result = DateTimeFormat.forPattern("YYYY-MM-dd", myLocalDate); 

Ответ для Q2:

LocalDateTime result = myLocalDate.toLocalDateTime(LocalTime.MIDNIGHT); 

Ответ на Q3:

DateTime result = new DateTime(javaUtilDate).withTimeAtStartOfDay(); 

Ответ на Q4:

String result = dateString + " 00:00:00"; 
Смежные вопросы