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?
Date, Calendar
2
249
Vastaukset 2
- 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
Olivia Oras
"Yle MOT:n tietojen mukaan Oras oli joutunut sairaalahoitoon helsinkiläisellä kauneusklinikalla tehdyn rasvaimun yhteyde931402- 47921
- 95895
MOT: Nuoren Olivia Oraksen, 27 surullinen kuolema kauneusoperaatiossa :(
MOT:n tietojen mukaan Oras menetti tajuntansa rasvaimua edeltäneessä puudutuksessa. Hänet kuljetettiin Husiin, ja hän ku86815Haluatko että unohdan sinut kokonaan
Siihen suuntaan ollaan menossa, nyt jo. Ja ehkä parempi näin, niin ei kulu energiaa hukkaan mahdottomuuteen. Ja vaikka j57747- 64602
- 42601
- 34577
Ylen typerät rinnastukset.
Näin YLE…..Saksassa ei ole äärioikeisto ollut vallassa sitten Hitlerin . YLEn toimittajille tiedoksi . Hitler oli Saksan191567- 48547