Format daty

0

Witam, mam zapisaną datę w stringu w formacie np "Piątek, 1 lipca" i gdy próbuję przerobić ją na format daty poprzez SimplyDateFormat to dostaję "Frid Jun 1 00:00:00 CEST 2016" a chciałbym dostać np. "01.07.2016". Jak zrobię przez sqlDate to pokazuje mi "2016-07-01" i jest to bliższe rozwiązaniu ale chcę pierwszy dzień. To może trochę kodu pokaże

DateFormat dataf = new SimpleDateFormat("dd.MM.yyyy");
java.sql.Date sqlDate = new java.sql.Date(dataf.parse(dat).getTime());
java.util.Date utilDate = sqlDate;
java.util.Date data = dataf.parse(dat);

dat to jest String z datą. Może ktoś pomoże?

0

Musisz do parsowania użyć innego formatu

DateFormat dataf = new SimpleDateFormat("EEEE d MMMM yyyy");

swojego używaj do wypisywania daty.

0

A jeśli mam datę w stringu "1.7.2016" to gdy próbuję parsować to wywala błędy, chyba że wezmę format sql date to wtedy jest ok

0

Witam, mam zapisaną datę w stringu w formacie np "Piątek, 1 lipca"

A jeśli mam datę w stringu "1.7.2016"

Zdecyduj się w jakim formacie masz datę w Stringu.

0

Mam i tak i tak... Z formatu "Piątek, 1 lipca" potrafię sparsować do "1.7.2016" tylko gubi wtedy zera bo powinno być czyli tak "01.07.2016". Może od początku... Datę wyciągam z jList. Do jList wrzucam poprzez specjalną metodę która właśnie zwraca mi format "Piątek, 1 lipca", potem wyciągam za pomocą:
dat = (String) obecna.data(zazn);
to mi zwraca stringa w formacie "1.7.2016" i teraz nie wiem jak to dobrze sparsować, bo jak próbowałem robić stringa "Piątek, 1 lipca" to wynik miałem taki że program wywalał albo format był nie taki jak chciałem.

0

To używaj dwóch parserów:

parser1 = new SimpleDateFormat("EEEE d MMMM yyyy");
parser2 = new SimpleDateFormat("dd.MM.yyyy");
if(dat.matches("\\d.*")){
    ... = parser2.parse(dat)
}
else{
   ... = parser1.parse(dat);
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0