package com.levelup.java.date.format; import static org.junit.Assert.assertEquals; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.Month; import java.util.Calendar; import java.util.TimeZone; import org.apache.commons.lang3.time.DateFormatUtils; import org.joda.time.DateTime; import org.joda.time.format.DateTimeFormat; import org.joda.time.format.DateTimeFormatter; import org.junit.Ignore; import org.junit.Test; /** * This java example will demonstrate formatting a date of January 15, 1967. * * @author Justin Musgrove * @see <a href='http://www.leveluplunch.com/java/examples/format-date/'>Format date</a> * */ public class FormatDate { @Test public void format_date_in_java () { Calendar cal = Calendar.getInstance(); cal.set(Calendar.MONTH, Calendar.JANUARY); cal.set(Calendar.DAY_OF_MONTH, 15); cal.set(Calendar.YEAR, 1967); SimpleDateFormat dateFormatter = new SimpleDateFormat("MM/dd/yyyy"); String dateFirstSuperBowlWasPlayed = dateFormatter.format(cal.getTime()); assertEquals("01/15/1967", dateFirstSuperBowlWasPlayed); } @Test @Ignore("Build fails due to timezone discrepancy") public void format_date_in_java_using_string_format() { Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("GMT-0600")); cal.set(Calendar.MONTH, Calendar.JANUARY); cal.set(Calendar.DAY_OF_MONTH, 15); cal.set(Calendar.YEAR, 1967); cal.set(Calendar.HOUR, 0); cal.set(Calendar.SECOND, 0); cal.set(Calendar.MINUTE, 0); cal.set(Calendar.MILLISECOND, 0); String str = String.format("Current Date/Time : %tc", cal.getTime()); assertEquals("Current Date/Time : Sun Jan 15 12:00:00 CST 1967", str); } @Test public void format_date_in_java8 () { java.time.format.DateTimeFormatter formatter = java.time.format.DateTimeFormatter.ofPattern("MM/dd/yyyy"); LocalDate localDate = LocalDate.of(1967, Month.JANUARY, 15); String dateFirstSuperBowlWasPlayed = localDate.format(formatter); assertEquals("01/15/1967", dateFirstSuperBowlWasPlayed); } @Test public void format_date_in_java_with_joda () { DateTime dateFirstSuperBowlWasPlayed = new DateTime(1967, 1, 15, 0, 0); DateTimeFormatter fmt = DateTimeFormat.forPattern("MM/dd/yyyy"); assertEquals("01/15/1967", dateFirstSuperBowlWasPlayed.toString(fmt)); } @Test public void format_date_in_java_with_apachecommons () { Calendar cal = Calendar.getInstance(); cal.set(Calendar.MONTH, Calendar.JANUARY); cal.set(Calendar.DAY_OF_MONTH, 15); cal.set(Calendar.YEAR, 1967); String dateFirstSuperBowlWasPlayed = DateFormatUtils.format(cal, "MM/dd/yyyy"); assertEquals("01/15/1967", dateFirstSuperBowlWasPlayed); } }