< prev index next >
test/java/time/tck/java/time/format/TCKDateTimeFormatterBuilder.java
Print this page
*** 57,80 ****
--- 57,83 ----
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
package tck.java.time.format;
+ import static java.time.format.DateTimeFormatter.BASIC_ISO_DATE;
import static java.time.temporal.ChronoField.DAY_OF_MONTH;
import static java.time.temporal.ChronoField.HOUR_OF_DAY;
import static java.time.temporal.ChronoField.MINUTE_OF_HOUR;
import static java.time.temporal.ChronoField.MONTH_OF_YEAR;
import static java.time.temporal.ChronoField.NANO_OF_SECOND;
+ import static java.time.temporal.ChronoField.OFFSET_SECONDS;
import static java.time.temporal.ChronoField.YEAR;
import static org.testng.Assert.assertEquals;
import java.text.ParsePosition;
import java.time.LocalDate;
import java.time.YearMonth;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
import java.time.format.DateTimeFormatterBuilder;
+ import java.time.format.DateTimeParseException;
import java.time.format.SignStyle;
import java.time.format.TextStyle;
import java.time.temporal.Temporal;
import java.time.temporal.TemporalAccessor;
import java.util.HashMap;
*** 337,346 ****
--- 340,361 ----
{"+HH", -2, 0, 0, "-02"},
{"+HH", 2, 30, 0, "+02"},
{"+HH", 2, 0, 45, "+02"},
{"+HH", 2, 30, 45, "+02"},
+ {"+HHmm", 2, 0, 0, "+02"},
+ {"+HHmm", -2, 0, 0, "-02"},
+ {"+HHmm", 2, 30, 0, "+0230"},
+ {"+HHmm", 2, 0, 45, "+02"},
+ {"+HHmm", 2, 30, 45, "+0230"},
+
+ {"+HH:mm", 2, 0, 0, "+02"},
+ {"+HH:mm", -2, 0, 0, "-02"},
+ {"+HH:mm", 2, 30, 0, "+02:30"},
+ {"+HH:mm", 2, 0, 45, "+02"},
+ {"+HH:mm", 2, 30, 45, "+02:30"},
+
{"+HHMM", 2, 0, 0, "+0200"},
{"+HHMM", -2, 0, 0, "-0200"},
{"+HHMM", 2, 30, 0, "+0230"},
{"+HHMM", 2, 0, 45, "+0200"},
{"+HHMM", 2, 30, 45, "+0230"},
*** 372,381 ****
--- 387,410 ----
{"+HH:MM:SS", 2, 0, 0, "+02:00:00"},
{"+HH:MM:SS", -2, 0, 0, "-02:00:00"},
{"+HH:MM:SS", 2, 30, 0, "+02:30:00"},
{"+HH:MM:SS", 2, 0, 45, "+02:00:45"},
{"+HH:MM:SS", 2, 30, 45, "+02:30:45"},
+
+ {"+HHmmss", 2, 0, 0, "+02"},
+ {"+HHmmss", -2, 0, 0, "-02"},
+ {"+HHmmss", 2, 30, 0, "+0230"},
+ {"+HHmmss", 2, 0, 45, "+020045"},
+ {"+HHmmss", 2, 30, 45, "+023045"},
+
+ {"+HH:mm:ss", 2, 0, 0, "+02"},
+ {"+HH:mm:ss", -2, 0, 0, "-02"},
+ {"+HH:mm:ss", 2, 30, 0, "+02:30"},
+ {"+HH:mm:ss", 2, 0, 45, "+02:00:45"},
+ {"+HH:mm:ss", 2, 30, 45, "+02:30:45"},
+
+
};
}
@Test(dataProvider="offsetPatterns")
public void test_appendOffset_format(String pattern, int h, int m, int s, String expected) throws Exception {
*** 876,881 ****
--- 905,944 ----
assertEquals(pp.getIndex(), 4);
assertEquals(parsed.getLong(HOUR_OF_DAY), 12L);
assertEquals(parsed.getLong(MINUTE_OF_HOUR), 30L);
}
+ @Test
+ public void test_lenient_offset_parse() {
+ assertEquals(new DateTimeFormatterBuilder().parseLenient().appendOffsetId().toFormatter().parse("+01").get(OFFSET_SECONDS),
+ 3600);
+ assertEquals(new DateTimeFormatterBuilder().parseLenient().appendOffset("+HH:MM:ss", "Z").toFormatter().parse("+01").get(OFFSET_SECONDS),
+ 3600);
+ assertEquals(new DateTimeFormatterBuilder().parseLenient().appendOffset("+HHMMss", "Z").toFormatter().parse("+01").get(OFFSET_SECONDS),
+ 3600);
+ }
+
+ @Test(expectedExceptions=DateTimeParseException.class)
+ public void test_strict_appendOffsetId() {
+ assertEquals(new DateTimeFormatterBuilder().appendOffsetId().toFormatter().parse("+01").get(OFFSET_SECONDS),
+ 3600);
+ }
+
+ @Test(expectedExceptions=DateTimeParseException.class)
+ public void test_strict_appendOffset_1() {
+ assertEquals(new DateTimeFormatterBuilder().appendOffset("+HH:MM:ss", "Z").toFormatter().parse("+01").get(OFFSET_SECONDS),
+ 3600);
+ }
+
+ @Test(expectedExceptions=DateTimeParseException.class)
+ public void test_strict_appendOffset_2() {
+ assertEquals(new DateTimeFormatterBuilder().appendOffset("+HHMMss", "Z").toFormatter().parse("+01").get(OFFSET_SECONDS),
+ 3600);
+ }
+
+ @Test
+ public void test_basic_iso_date() {
+ assertEquals(BASIC_ISO_DATE.parse("20021231+01").get(OFFSET_SECONDS), 3600);
+ assertEquals(BASIC_ISO_DATE.parse("20021231+0101").get(OFFSET_SECONDS), 3660);
+ }
+
}
< prev index next >