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

Kopiuj
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?

bogdans
Moderator
  • Rejestracja:prawie 17 lat
  • Ostatnio:prawie 5 lat
0

Musisz do parsowania użyć innego formatu

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

swojego używaj do wypisywania daty.


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell
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

bogdans
Moderator
  • Rejestracja:prawie 17 lat
  • Ostatnio:prawie 5 lat
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.


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell
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.

bogdans
Moderator
  • Rejestracja:prawie 17 lat
  • Ostatnio:prawie 5 lat
0

To używaj dwóch parserów:

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

To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell
edytowany 1x, ostatnio: bogdans

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.