Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/29: Рейтинг темы: голосов - 29, средняя оценка - 4.76
 Аватар для we2seek
84 / 84 / 42
Регистрация: 25.01.2010
Сообщений: 386

Парсинг даты SimpleDateFormat

26.08.2013, 13:33. Показов 5893. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вопрос к знатокам
Требуется из строки, которая может иметь любой из вариантов (заранее не известно какой именно): "26082013", "26.08.2013", "26,08,2013", "26-08-2013", "26/08/2013" распарсить дату.
У меня есть идея через вложенные try-catch это реализовать, но попой чувствую, что решение не оптимальное, да и громоздко как-то выходит. Какие еще есть более изящные способы?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
26.08.2013, 13:33
Ответы с готовыми решениями:

Неверный парсинг даты
Дата: String d = "10.11.2015 - 13:25:30"; Конвертация: new SimpleDateFormat("dd.mm.yyyy - hh:mm:ss").parse(d) Результат: Почему...

SimpleDateFormat
Доброго времени суток, всем. Проблема в следующем: Код: System.out.println(dateString); SimpleDateFormat format = new...

Парсинг и форматирование даты
приветствую всех, в java я новичок и надеюсь на вашу поддрежку. столкнулся с такой проблемой, я хочу к примеру спарсить с одного сайта, с...

3
38 / 38 / 11
Регистрация: 21.05.2013
Сообщений: 128
26.08.2013, 13:54
Java
1
2
3
4
5
        String[] s="26/08/2013".split("[.,-/]");
        for (int i = 0; i < s.length; i++)
        {
            System.out.println(s[i]);
        }
1
 Аватар для behemoth
44 / 30 / 18
Регистрация: 29.09.2012
Сообщений: 75
Записей в блоге: 1
26.08.2013, 13:57
можно проверить на размер масива после сплита если он 1 то вручную сабстрінгом разпарсить если >1 то всьо норм
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
String[] str = { "26082013", "26.08.2013", "26,08,2013", "26-08-2013", "26/08/2013"};
    String date=null;
    String month=null;
    String year=null;
    for(String s:str){
        String[] sk = s.split("-|,|\\.|/");
        if(sk.length>1){
             date = sk[0];
             month= sk[1];
             year = sk[2];
        }else{
            date = sk[0].substring(0, 2);
            month = sk[0].substring(2,4);
            year = sk[0].substring(4);
        }
        //System.out.println(date+"_"+month+"_"+year);
    }
    Date d = new Date(Integer.parseInt(year)-1900, Integer.parseInt(month), Integer.parseInt(date));
    System.out.println(d.toString());
1
 Аватар для Skipy
2000 / 1427 / 92
Регистрация: 25.11.2010
Сообщений: 3,611
26.08.2013, 14:13
Цитата Сообщение от MaxNevermind Посмотреть сообщение
Java
1
2
3
4
5
        String[] s="26/08/2013".split("[.,-/]");
        for (int i = 0; i < s.length; i++)
        {
            System.out.println(s[i]);
        }
Не годится при слитном написании - 26082013. Надо убирать вообще все возможные разделители и парсить вариант ddMMyyyy.

Добавлено через 5 минут
Вот где-то так:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package ru.skipy.tests;
 
import java.text.ParseException;
import java.text.SimpleDateFormat;
 
/**
 * DateParseTest
 *
 * @author: Eugene Matyushkin aka Skipy
 * @since: 26.08.13
 */
public class DateParseTest {
 
    public static void main(String[] args) throws ParseException {
        SimpleDateFormat sdf = new SimpleDateFormat("ddMMyyyy");
        System.out.println(sdf.parse(normalize("26082013")));
        System.out.println(sdf.parse(normalize("26-08-2013")));
        System.out.println(sdf.parse(normalize("26.08.2013")));
        System.out.println(sdf.parse(normalize("26,08,2013")));
        System.out.println(sdf.parse(normalize("26/08/2013")));
    }
 
    public static String normalize(String src){
        return src.replaceAll("\\D", "");
    }
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.08.2013, 14:13
Помогаю со студенческими работами здесь

Реентерабельный ли SimpleDateFormat
Сабж, собственно. Не нахожу в спецификации на этот класс упоминания о реентерабельности его методов. Мне достаточно часто в рантайме...

Почему это не работает? SimpleDateFormat.parse()
Всем привет! Подскажите, почему этот код не работает? Нагуглить не смог( import java.text.*; public class Solution { public...

SimpleDateFormat. Неправильно конвертируется время из String в long
Всем привет. Подскажите, почему следующий код даёт неправильный результат? package testDateTime; import java.text.*; ...

Парсинг даты и исключение "Unparseable date"
Добрый день! Столкнулся с такой трудностью. Нужно распарсить дату. Дата приходит в формате: &quot;Tue Jul 01 2014 00:00:00 GMT+0300...

Парсинг даты с переводом на другой язык
народ есть дата вот такого формата: дд: месяц сокращонным словом : гг Задание: нужно эту дату переводить с рус на англ, или укр на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru