Как разобрать значения, возвращаемые getDate() в Java?

Я создал веб-сервис, который возвращает дату события, которое первоначально фиксируется функцией getDate(). Я хочу, чтобы дата, возвращаемая этой функцией (что-то в этом формате: 2013-05-17 14:52:00.943), была проанализирована и показана пользователю в формате DD-MM-YYYY.

Какие-либо предложения? Я не нашел никакого решения в этом направлении.

3 ответа

Решение

Я попробовал этот код, и он отлично работает для меня. Пожалуйста, попробуйте мой код ниже: Пожалуйста, позвоните Таруну, потому что он дал почти правильный ответ. Просто он сделал ошибку, что он передает метод cal.getTime() вместо pDate

String formatDate = p.format (pDate);

и вторая ошибка в формате "ДД-ММ-ГГГГ", но фактический формат:

"ДД-ММ-ГГГГ", а не "ДД-ММ-ГГГГ"

Я сделал изменения в нем и изменить его.

String dateStr = "2013-05-16 14:52:00.943"; 

SimpleDateFormat c = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.S"); // your web service format
Date pDate = c.parse(dateStr); 
SimpleDateFormat p = new SimpleDateFormat("dd-MM-yyyy"); // your required format

String formatDate = p.format(pDate); // convert it in your required format
SimpleDateFormat formatter = new SimpleDateFormat("EEEE"); // Day format as you want EEE for like "Sat" and EEEE for like "Saturday"
String Day = formatter.format(pDate); // This will give you a day as your selected format

System.out.println("Date & Day>>>"+formatDate+" "+Day);

// Для формата GMT ваш формат должен быть таким: "2013-05-16 14:52:00.943 GMT+05:30"

// Give it to me in GMT time.
c.setTimeZone(TimeZone.getTimeZone("GMT+05:30"));
System.out.println("GMT time: " + c.format(pDate));

Выход:

Date & Day>>>16-05-2013 Thursday
GMT time: 2013-05-16 02:52:00.943 Greenwich Mean Time

Время Йода:

Вы можете скачать файл jar 2.0 joda отсюда:

DateTimeFormatter jodaFormatter = ISODateTimeFormat.dateTime();
DateTime jodaParsed = jodaFormatter
                .parseDateTime("2013-05-17T16:27:34.9+05:30");
Date date2 = jodaParsed.toDate();
System.out.println("Date & Day:" + jodaParsed.getDayOfMonth() + "-" + jodaParsed.getMonthOfYear() + "-" + jodaParsed.getYear() + " " + jodaParsed.getHourOfDay() + ":" + jodaParsed.getMinuteOfHour()+" "+jodaParsed.dayOfWeek().getAsText());

выход:

Date & Day:17-5-2013 16:27 Friday

Надеюсь, это сработает для вас.

String dateStr = "2013-05-17 14:52:00.943"; 

SimpleDateFormat c = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.S"); 
Date pDate = c.parse(dateStr); 
SimpleDateFormat p = new SimpleDateFormat("dd-MM-yyyy"); 

String formatDate = p.format(pDate); 

Вы можете использовать Joda Time, если у вас есть двоеточие во временном смещении.

DateTimeFormatter jodaFormatter = ISODateTimeFormat.dateTime();
DateTime jodaParsed = jodaFormatter.parseDateTime("2013-05-17T16:27:34.9+05:30"); 
Date date = jodaParsed.toDate();
Calendar c = Calendar.getInstance(); 
c.setTime(date); 
c.get(Calendar.DATE));

Больше информации о Йоде можно найти здесь.

Используйте SimpleDateFormat для анализа даты, а затем распечатайте ее с SimpleDateFormat в нужном формате.

Пример:

SimpleDateFormat format1 = new SimpleDateFormat("MM/dd/yyyy");
SimpleDateFormat format2 = new SimpleDateFormat("dd-MM-yyyy");
Date date = format1.parse("05/18/2013");
System.out.println(format2.format(date));

Выход:

11-05-2013

Редактировать:

Calendar cal = Calendar.getInstance();
cal.setTime(specific_date);
int dayOfMonth = cal.get(Calendar.DAY_OF_WEEK);

String dayOfMonthStr = String.valueOf(dayOfMonth);
Другие вопросы по тегам