### Question:
ZonedDateTimeParser implements SingleLineValueParser<ZonedDateTime> { @Override public ZonedDateTime parse(final String... columns) { checkNotNull(columns, "No columns to parse from"); checkArgument(columns.length == 1, String.format("Expecting only one column, but got %d", columns.length)); final String value = columns[0]; checkArgument(!isNullOrEmpty(value), "Missing value to parse from"); return ZonedDateTime.parse(value, DateTimeFormatter.ofPattern(GDPR_TIME_PATTERN, Locale.ENGLISH)); } private  ZonedDateTimeParser(); static ZonedDateTimeParser getDefault(); @Override ZonedDateTime parse(final String... columns); static final String GDPR_TIME_PATTERN; }### Answer:
@Test public void testParseFromIso8610() { ZonedDateTime time = PARSER.parse("2016-03-05 08:29:21 PST"); assertEquals(2016, time.getYear()); assertEquals(ZoneId.of("America/Los_Angeles"), time.getZone()); }
@Test(expected = DateTimeParseException.class) public void testParseFromInvalid() { PARSER.parse("asdfg"); }
@Test(expected = IllegalArgumentException.class) public void testParseFromBlank() { PARSER.parse(""); }
@Test(expected = IllegalArgumentException.class) public void testParseFromNull() { PARSER.parse(); }