/*
* Použití originálního Java API
*/
//vytvoření datumu 12.12.2007
Calendar cal = new GregorianCalendar(2007, 11, 12);
Date date = cal.getTime();
//nastavení hodiny v existujícím datumu
//(ještě že jsme si schovali Calendar objekt)
cal.set(Calendar.HOUR_OF_DAY, 5);
cal.set(Calendar.MINUTE, 0);
cal.set(Calendar.SECOND, 0);
cal.set(Calendar.MILLISECOND, 0);
date = cal.getTime();
//přičtení 1 měsíce k datu (pořád s sebou vlečeme calendar)
cal.add(Calendar.MONTH, 1);
date = cal.getTime();
//kolik minut je to od začátku roku?
Calendar startOfTheYear = new GregorianCalendar(2007, 0, 1, 0, 0, 0);
long minutes = (cal.getTimeInMillis() - startOfTheYear.getTimeInMillis()) / 60000;
//práce s periodou, chceme vypočítat řadu
//časových okamžiků s periodou 5 hodin, 5 vteřin
for(int i = 0; i < 5; i++) {
cal.add(Calendar.HOUR, 5);
cal.add(Calendar.MINUTE, 50);
date = cal.getTime();
}
//zobrazení dne v týdnu na frontend
SimpleDateFormat fmt = new SimpleDateFormat("E", new Locale("cs"));
String dayOfWeek = fmt.format(date);
/*
* Použití Joda Time API
*/
//vytvoření datumu 12.12.2007
DateTime jodaDate = new DateTime().withDate(2007, 12, 12);
//nastavení hodiny v existujícím datumu
jodaDate = jodaDate.withTime(5, 0, 0, 0);
//přičtení 1 měsíce k datu
jodaDate = jodaDate.plusMonths(1);
//kolik minut je to od začátku roku?
DateTime jodaStartOfTheYear = new DateTime(2007, 1, 1, 0, 0, 0, 0);
long jodaMinutes = new Duration(jodaStartOfTheYear, jodaDate).getMillis() / 60000;
//práce s periodou, chceme vypočítat řadu
//časových okamžiků s periodou 5 hodin, 5 vteřin
Period period = new Period(5, 50, 0, 0);
for(int i = 0; i < 5; i++) {
jodaDate = jodaDate.plus(period);
}
//zobrazení dne v týdnu na frontend
String jodaDayOfWeek = jodaDate.dayOfWeek().getAsText(new Locale("cs"));
// from Joda to JDK
Date jdkDate = new DateTime().toDate();
// from JDK to Joda
DateTime dt = new DateTime(new Date());
// from Joda to JDK
GregorianCalendar jdkGCal = new DateTime().toGregorianCalendar();
// from JDK to Joda
DateTime dt = new DateTime(GregorianCalendar.getInstance());
DateTimeFormatter fmt = new DateTimeFormatterBuilder()
.appendDayOfMonth(2) //první dva znaky znamenají den v měsíci
.appendLiteral('-') //pak následuje znak pomlčky
.appendMonthOfYearShortText() //následuje název měsíce ve zkrácené formě
.appendLiteral('-') //opět následuje pomlčka
.appendTwoDigitYear(1956) //a pak číslo roku v dvoumístném formátu
//toto konkrétně znamená povolený interval od roku 1906 do roku 2005
//př. 08 - převede na rok 1908, 03 - převede na rok 2003
.toFormatter();
DateTimeUtils.setCurrentMillisFixed(new DateTime(2007,12,1,12,0,0).getMillis());
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>1.5.2</version>
</dependency>
Komentáře