1 /*
2  * Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * This code is free software; you can redistribute it and/or modify it
6  * under the terms of the GNU General Public License version 2 only, as
7  * published by the Free Software Foundation.
8  *
9  * This code is distributed in the hope that it will be useful, but WITHOUT
10  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
12  * version 2 for more details (a copy is included in the LICENSE file that
13  * accompanied this code).
14  *
15  * You should have received a copy of the GNU General Public License version
16  * 2 along with this work; if not, write to the Free Software Foundation,
17  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18  *
19  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20  * or visit www.oracle.com if you need additional information or have any
21  * questions.
22  */
23 /*
24  * @test
25  * @bug 8072099
26  * @summary check the date time pattern for <NUMERIC_FIELD> which should
27  * not throw ParseException
28  */
29 
30 import java.text.ParseException;
31 import java.text.SimpleDateFormat;
32 import java.util.Locale;
33 
34 public class Bug8072099 {
35 
36     private static String[][] shouldPass = {
37         {"ha", "11AM"},
38         {"hma", "33AM"},
39         {"ka", "24AM"},
40         {"yyyMMM", "2016May"},
41         {"yyyyDDEEE", "2016366Sat"},
42         {"ddmyyyyz", "22111980GMT+5:30"}
43     };
44 
main(String[] args)45     public static void main(String[] args) {
46 
47         Locale defaultLocale = Locale.getDefault();
48         try {
49             Locale.setDefault(Locale.US);
50             // check the date time pattern which should pass
51             for (String[] pattern : shouldPass) {
52                 SimpleDateFormat dateTimeFormat = new SimpleDateFormat(pattern[0]);
53                 parseDateTimeInput(dateTimeFormat, pattern[1]);
54             }
55         } finally {
56             Locale.setDefault(defaultLocale);
57         }
58     }
59 
parseDateTimeInput(SimpleDateFormat format, String inputString)60     private static void parseDateTimeInput(SimpleDateFormat format,
61                                            String inputString) {
62         try {
63             format.parse(inputString);
64         } catch (ParseException ex) {
65             throw new RuntimeException("[FAILED: Unable to parse date time"
66                     + " string " + inputString + "]");
67         }
68     }
69 
70 }
71