Date, Calendar

Ninni__

Moi,

Mulla on tällainen metodi...

public static String dateToString(Date date, String pattern) {
try {
Calendar cal = Calendar.getInstance();
cal.setTime(date);
SimpleDateFormat df = new SimpleDateFormat(pattern);
return df.format(cal.getTime());
} catch (Exception e) {
}
return "";
}

Tuo näyttäisi palauttavan lopputuloksessa kuukauden väärin, yhtä pienempänä kuin pitäisi. (Eli siinä muodossa, jossa kuukausi ilmeisesti on indeksoituna Date-oliossa.) Mitenköhän näitä tilanteita kuuluisi hoitaa? Tuntuu todella kömpelöltä korjaukselta lisätä kuukausi ylimääräistä ennen formatia.

Onko normaalia, että Calendar ja Date toimii näin huonosti yhteen, vai onko taas käyttäjässä vika?

2

188

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • FoobarFoo

      Hieman vaikeasti tuntuu menevän, koska metodin voi käytännössä yhdellä rivillä:

      public static String dateToString(Date date, String pattern) {
      return new SimpleDateFormat(format).format(pattern);
      }
      ja testi
      public void testFormatting(){
      Formater formater = new Formater();
      String result = formater.dateToString(Calendar.getInstance().getTime(), "dd.MM.yyyy");
      assertEquals("20.07.2011", result);
      }

      • foobarfoo

        Ylempään luokkaan jäi näemmä static-sana. Mutta tälläisenä yleisenä hyvänä(tm) neuvona:
        1. Vältä staattisia metodeja aina kun voit (eli käytännössä aina). Teet vaan testaamisesta hankalampaa.
        2. Älä koskaan ja ikinä catchaa kaikkia poikkeuksia (Exception), varsinkaan kun tee mitään merkintää siitä että tapahtui poikkeus. DateFormater heittää IllegalArgumentException, jollei se ymmärrä haluta pvm-muotoa. NullPointterin-Exception catchaaminen on siinä ja siinä.
        PS. Olisit tehnyt väärin jos olisit alkanut lisää tuossa dateToString-metodissa kuukausia tuohon date-olioon. Harjoitteluksi saat selvittää että miksi:)


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Poliisi: Kymmenhenkinen pohjalaisperhe ollut vuoden kateissa kansainvälinen etsintäkuulutus Poliis

      Poliisi: Kymmenhenkinen pohjalaisperhe ollut vuoden kateissa – kansainvälinen etsintäkuulutus Poliisi pyytää yleisön apu
      Maailman menoa
      446
      3839
    2. Tässä totuus jälleensyntymisestä - voit yllättyä

      Jumalasta syntyminen Raamatussa ei tässä Joh. 3:3. ole alkukielen mukaan ollenkaan sanaa uudestisyntyminen, vaan pelkä
      Jälleensyntyminen
      318
      1652
    3. Mitään järkeä?

      Että ollaan erillään? Kummankin pää on kovilla.
      Ikävä
      116
      1486
    4. En kadu sitä, että kohtasin hänet

      mutta kadun sitä, että aloin kirjoittamaan tänne palstalle. Jollain tasolla se saa vain asiat enemmän solmuun ja tekee n
      Ikävä
      89
      1444
    5. Noniin rakas

      Annetaanko pikkuhiljaa jo olla, niin ehkä säilyy vienot hymyt kohdatessa. En edelleenkään halua sulle tai kenellekään mi
      Ikävä
      99
      1378
    6. Oisko mitenkään mahdollisesti ihan pikkuisen ikävä..

      ...edes ihan pikkuisen pikkuisen ikävä sulla mua??.. Että miettisit vaikka vähän missähän se nyt on ja oiskohan hauska n
      Ikävä
      59
      1336
    7. Lapuan sanomissa käy rytinä

      Pistivät sitten päätoimittajan pihalle
      Lapua
      50
      1266
    8. Helena Koivu : Ja kohta mennään taas

      Kohta kohtalon päivä lähestyy kuinka käy Helena Koivulle ? Kenen puolella olet? Jos vastauksesi on Helenan niin voisi
      Kotimaiset julkkisjuorut
      93
      1204
    9. Oot ihana

      Toivottavasti nähdään sattumalta jonain kesäpäivänä♥️🥺🫂
      Ikävä
      44
      1049
    10. Au pair -työ Thaimaassa herättää kiivasta keskustelua somessa: "4cm torakoita, huumeita, tauteja..."

      Au pairit -sarjan uusi kausi herättää keskustelua Suomi24 Keskustelupalvelussa. Mielipiteitä ladataan puolesta ja vastaa
      Tv-sarjat
      33
      1047
    Aihe