Skip to content

Commit 14b984f

Browse files
cdjoleKevinGilmore
authored andcommitted
BAEL-2132 - Date to String conversion (eugenp#5116)
* BAEL-2132 - Date to String conversion * BAEL-2132 - TimeZone set to CET
1 parent 107b904 commit 14b984f

1 file changed

Lines changed: 67 additions & 0 deletions

File tree

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
package com.baeldung.string.formatter;
2+
3+
import org.junit.BeforeClass;
4+
import org.junit.Test;
5+
6+
import java.text.DateFormat;
7+
import java.text.SimpleDateFormat;
8+
import java.time.Instant;
9+
import java.time.LocalDateTime;
10+
import java.time.ZoneId;
11+
import java.time.format.DateTimeFormatter;
12+
import java.util.Calendar;
13+
import java.util.Date;
14+
import java.util.TimeZone;
15+
16+
import static org.junit.Assert.assertEquals;
17+
18+
public class DateToStringFormatterUnitTest {
19+
20+
private static final String DATE_FORMAT = "MMM d, yyyy HH:mm a";
21+
private static final String EXPECTED_STRING_DATE = "Aug 1, 2018 12:00 PM";
22+
private static Date date;
23+
24+
@BeforeClass
25+
public static void setUp() {
26+
TimeZone.setDefault(TimeZone.getTimeZone("CET"));
27+
Calendar calendar = Calendar.getInstance();
28+
calendar.set(2018, Calendar.AUGUST, 1, 12, 0);
29+
date = calendar.getTime();
30+
}
31+
32+
@Test
33+
public void whenDateConvertedUsingSimpleDateFormatToString_thenCorrect() {
34+
DateFormat formatter = new SimpleDateFormat(DATE_FORMAT);
35+
String formattedDate = formatter.format(date);
36+
37+
assertEquals(EXPECTED_STRING_DATE, formattedDate);
38+
}
39+
40+
@Test
41+
public void whenDateConvertedUsingDateFormatToString_thenCorrect() {
42+
String formattedDate = DateFormat
43+
.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.SHORT)
44+
.format(date);
45+
46+
assertEquals(EXPECTED_STRING_DATE, formattedDate);
47+
}
48+
49+
@Test
50+
public void whenDateConvertedUsingFormatterToString_thenCorrect() {
51+
String formattedDate = String.format("%1$tb %1$te, %1$tY %1$tI:%1$tM %1$Tp", date);
52+
53+
assertEquals(EXPECTED_STRING_DATE, formattedDate);
54+
}
55+
56+
@Test
57+
public void whenDateConvertedUsingDateTimeApiToString_thenCorrect() {
58+
DateTimeFormatter fmt = DateTimeFormatter.ofPattern(DATE_FORMAT);
59+
Instant instant = date.toInstant();
60+
LocalDateTime ldt = instant
61+
.atZone(ZoneId.of("CET"))
62+
.toLocalDateTime();
63+
String formattedDate = ldt.format(fmt);
64+
65+
assertEquals(EXPECTED_STRING_DATE, formattedDate);
66+
}
67+
}

0 commit comments

Comments
 (0)