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

246

    Vastaukset 2

    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. Naiset ymmärtävät ettei talous lähde nousuun

      Miten paljon järjellisempi olento nainen onkaan kuin tilastollisestikin paremmin tienaava mies. Kun kaikkialla puskuroid
      Maailman menoa
      138
      907
    2. En jaksa

      Enää pelleillä ja paljastan J naisen nimen. Se on Jonna ja hän ei koskaan, edes luultavasti ollut täällä. Silti piene
      Ikävä
      44
      667
    3. Kissa eli kivuissa useita viikkoja

      Ei vienyt lääkäriin vaikka kissa parka maukui ja moni seuraajakin (minäkin) näin että kissa on sairas.
      Tuusniemi
      117
      588
    4. Minkälainen nainen

      Minkälainen kaipaamasi nainen on luonteeltaan? Kaikki hassun hauskat antava ja helppo on sallittuja, jos poikien on kovi
      Ikävä
      21
      588
    5. Yksi asia sen esti

      Etten antanut meille mahdollisuutta
      Ikävä
      36
      542
    6. Jos meillä olisi yhteinen koti

      Niin haittaisiko sinua pitää se vähä tavaraisena? Ajattelin tänään että jos joskus asuttaisiin yhdessä ja haluaisit pal
      Ikävä
      50
      535
    7. Okei, eli olet rakastunut

      Hyvä sinä, niin minäkin.
      Ikävä
      62
      530
    8. Tuntuu pahalta meidän molempien puolesta

      Anteeksi, että olen tällainen pelkuri. En vaan usko rakkauteen enää miehen ja naisen välillä omalla kohdalla. Tiedän, et
      Ikävä
      34
      498
    9. Martinan mauton tyyli

      Voi hyvää päivää 🤣 nyt ollaan oltu Muhiksen kanssa Kultareservin avajaisissa suorat housut jalassa ja 500€ korsetti pää
      Kotimaiset julkkisjuorut
      133
      493
    10. Arvaako kukaan?

      "Humalojalla metalliromun keräyspaikalla on kulkenut pitkin kevättä ja kesää joku henkilö, joka on vienyt sieltä kymmeni
      Haapavesi
      25
      472
    Aihe