ParseException当我尝试编写自己的从 a 解析String为 an的方法时,我一直在研究 Java 的int,并且有两个问题:
Integer.parseInt(String string)抛出 a (由于它是 的子类,所以才有意义),并且根本不抛出。NumberFormatExceptionIllegalArgumentExceptionParseExceptionerrorOffset”?ParseException的构造函数强制你给它一个值——这是什么意思?我可以在 Android 项目中成功执行以下代码片段:
SimpleDateFormat dateFormat = new SimpleDateFormat(
"yyyy-MM-dd'T'HH:mm:ssZ", Locale.US);
dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
Date date = null;
try {
date = dateFormat.parse("2015-08-17T19:30:00+02:00");
} catch (ParseException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
现在我将相同的代码片段放入 JUnit4 测试中:
@RunWith(JUnit4.class)
public class DateUtilsTests {
@Test
public void testFailsWithParseException() {
SimpleDateFormat dateFormat = new SimpleDateFormat(
"yyyy-MM-dd'T'HH:mm:ssZ", Locale.US);
dateFormat.setTimeZone(TimeZone.getTimeZone("UTC"));
Date date = null;
try {
date = dateFormat.parse("2015-08-17T19:30:00+02:00");
} catch (ParseException e) {
e.printStackTrace();
}
assertThat(date).isNotEqualTo(null);
}
}
Run Code Online (Sandbox Code Playgroud)
这失败了:
java.text.ParseException:无法解析的日期:“2015-08-17T19:30:00+02:00”
我正在写一个约会计划,我收到以下错误:
AppointmentNew.java:68: unreported exception java.text.ParseException; must be caught or declared to be thrown
Date lowDate = sdf.parse(stdin.nextLine());
^
AppointmentNew.java:70: unreported exception java.text.ParseException; must be caught or declared to be thrown
Date highDate = sdf.parse(stdin.nextLine());
^
AppointmentNew.java:77: unreported exception java.text.ParseException; must be caught or declared to be thrown
Date newCurrentDate = sdf.parse(currentDate);
Run Code Online (Sandbox Code Playgroud)
我很确定我需要尝试/捕捉,但我不知道如何制作它.我收到错误的部分是它要求用户输入BEGINNING和END日期,当他们这样做时程序然后打印出他们在两个日期之间做出的约会.
这是我的代码:
import java.util.*;
import java.text.SimpleDateFormat;
import java.util.Date;
public class AppointmentNew
{
public static void main (String[] args)
{
ArrayList<String> list = new ArrayList<String>();
Scanner stdin = new Scanner(System.in); …Run Code Online (Sandbox Code Playgroud) curl localhost:9200/tweet/posts/_search -d '{
"query": {
"and": [
{
"wildcard": {
"_all": "*pet*"
}
},
{
"wildcard": {
"_all": "*rom*"
}
}
]
}
}'
Run Code Online (Sandbox Code Playgroud)
这给了我一个解析异常.我想运行like(%test%)带有AND条件的MySQL 类型查询.在弹性搜索中还有其他好的方法吗?
我正在尝试使用以下查询创建一个Hive表:
CREATE TABLE IF NOT EXISTS BXDataSet
(ISBN STRING,
BookTitle STRING,
BookAuthor STRING,
YearOfPublication STRING,
Publisher STRING,
ImageURLS STRING,
ImageURLM STRING,
ImageURLL STRING)
COMMENT 'BX-Books Table'
ROW FORMAT DELIMITED FIELDS TERMINATED BY ';' LINE TERMINATED BY '\n'
STORED AS TEXTFILE;
Run Code Online (Sandbox Code Playgroud)
我如何提交给Hive时遇到以下异常:
MismatchedTokenException(-1!=301)
at org.antlr.runtime.BaseRecognizer.recoverFromMismatchedToken(BaseRecognizer.java:617)
at org.antlr.runtime.BaseRecognizer.match(BaseRecognizer.java:115)
at org.apache.hadoop.hive.ql.parse.HiveParser.tableRowFormatFieldIdentifier(HiveParser.java:31433)
at org.apache.hadoop.hive.ql.parse.HiveParser.rowFormatDelimited(HiveParser.java:30386)
at org.apache.hadoop.hive.ql.parse.HiveParser.tableRowFormat(HiveParser.java:30662)
at org.apache.hadoop.hive.ql.parse.HiveParser.createTableStatement(HiveParser.java:4683)
at org.apache.hadoop.hive.ql.parse.HiveParser.ddlStatement(HiveParser.java:2144)
at org.apache.hadoop.hive.ql.parse.HiveParser.execStatement(HiveParser.java:1398)
at org.apache.hadoop.hive.ql.parse.HiveParser.statement(HiveParser.java:1036)
at org.apache.hadoop.hive.ql.parse.ParseDriver.parse(ParseDriver.java:199)
at org.apache.hadoop.hive.ql.parse.ParseDriver.parse(ParseDriver.java:166)
at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:404)
at org.apache.hadoop.hive.ql.Driver.compile(Driver.java:322)
at org.apache.hadoop.hive.ql.Driver.compileInternal(Driver.java:975)
at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1040)
at org.apache.hadoop.hive.ql.Driver.run(Driver.java:911)
at org.apache.hadoop.hive.ql.Driver.run(Driver.java:901)
at org.apache.hadoop.hive.cli.CliDriver.processLocalCmd(CliDriver.java:268)
at org.apache.hadoop.hive.cli.CliDriver.processCmd(CliDriver.java:220) …Run Code Online (Sandbox Code Playgroud) 我正在使用Java 1.7。
尝试转换:
2018-05-23T23:18:31.000Z
Run Code Online (Sandbox Code Playgroud)
进入
2018-05-23 23:18:31
Run Code Online (Sandbox Code Playgroud)
DateUtils类:
public class DateUtils {
public static String convertToNewFormat(String dateStr) throws ParseException {
TimeZone utc = TimeZone.getTimeZone("UTC");
SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-dd HH:mm:ss");
sdf.setTimeZone(utc);
Date convertedDate = sdf.parse(dateStr);
return convertedDate.toString();
}
}
Run Code Online (Sandbox Code Playgroud)
尝试使用它时:
String convertedDate = DateUtils.convertToNewFormat("2018-05-23T23:18:31.000Z");
System.out.println(convertedDate);
Run Code Online (Sandbox Code Playgroud)
得到以下异常:
Exception in thread "main" java.text.ParseException: Unparseable date: "2018-05-23T23:22:16.000Z"
at java.text.DateFormat.parse(DateFormat.java:366)
at com.myapp.utils.DateUtils.convertToNewFormat(DateUtils.java:7)
Run Code Online (Sandbox Code Playgroud)
我可能做错了什么?
有没有更简单的方法(例如Apache Commons lib)?
我正在尝试在tomcat 7.0.23上部署一个应用程序(Web应用程序都是编译和构建的),我在catalina.out中遇到了这个错误:
INFO: validateJarFile(/Library/Tomcat/webapps/app2/WEB-INF/lib/javaee-api-6.0.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
Jan 5, 2012 10:28:41 PM org.apache.catalina.loader.WebappClassLoader validateJarFile
INFO: validateJarFile(/Library/Tomcat/webapps/app2/WEB-INF/lib/javaee.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
Jan 5, 2012 10:28:41 PM org.apache.catalina.startup.ContextConfig parseWebXml
SEVERE: Parse error in application web.xml file at jndi:/localhost/app2/WEB-INF/web.xml
java.util.zip.ZipException: error in opening zip file
at java.util.zip.ZipFile.open(Native Method)
at java.util.zip.ZipFile.<init>(ZipFile.java:127)
at java.util.jar.JarFile.<init>(JarFile.java:135)
at java.util.jar.JarFile.<init>(JarFile.java:72)
at sun.net.www.protocol.jar.URLJarFile.<init>(URLJarFile.java:72)
at sun.net.www.protocol.jar.URLJarFile.getJarFile(URLJarFile.java:48)
at sun.net.www.protocol.jar.JarFileFactory.get(JarFileFactory.java:70)
at sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:104)
at sun.net.www.protocol.jar.JarURLConnection.getInputStream(JarURLConnection.java:132) …Run Code Online (Sandbox Code Playgroud) 以下JSF片段:
<p:dataTable value="#{userbean.getAll()}" var="user">
Run Code Online (Sandbox Code Playgroud)
引发此异常:
Encountered "(" at line 1, column 18. Was expecting one of: "}" ... "." ... "[" ... ">" ... "gt" ... "<" ... "lt" ... ">=" ... "ge" ... "<=" ... "le" ... "==" ... "eq" ... "!=" ... "ne" ... "&&" ... "and" ... "||" ... "or" ... "*" ... "+" ... "-" ... "/" ... "div" ... "%" ... "mod" ...
org.apache.el.parser.ParseException: Encountered "(" at line 1, column 18. Was expecting one of: …Run Code Online (Sandbox Code Playgroud) 我收到一个表示日期的字符串,我需要将此字符串转换为日期,并验证字符串是否为有效日期.
我收到字符串33-12-2013一个解析方法返回日期01-01-2014,代码:
Date fechaVencimientoFormateada;
SimpleDateFormat formateador = new SimpleDateFormat( "dd-MM-yyyy" );
try
{
fechaVencimientoFormateada = formateador.parse( "33-12-2013" );
System.out.println( formateador.format(fechaVencimientoFormateada) );
}
catch ( ParseException e )
{
System.out.println("ERROR!");
}
Run Code Online (Sandbox Code Playgroud)
输出:2014年1月2日00:00:00 COT 2014
我期待一个ParseException,任何想法?
和其他例子:
字符串日期:365-12-2013输出:Sun Nov 30 00:00:00 COT 2014
字符串日期:1-24-2013输出:2014年12月1日00:00:00 COT 2014
为什么ParseException不抛?
I\xe2\x80\x99m 尝试计算两个日期之间的天数。当我运行它时,它抛出catch (ParseException ex)。
\n\nimport java.text.SimpleDateFormat;\nimport java.text.ParseException;\nimport java.util.Date;\nimport java.util.concurrent.TimeUnit;\n\npublic class Main {\n\n public static void main(String[] args) {\n\n String date1 = "11/11/2020";\n String date2 = "13/11/2020";\n\n try {\n SimpleDateFormat dateFormat = new SimpleDateFormat("dd-mm-yyyy");\n Date date_1 = dateFormat.parse(date1);\n Date date_2 = dateFormat.parse(date2);\n\n System.out.println(date_1);\n System.out.println(date_2);\n\n long numberOfDays = date_2.getTime() - date_1.getTime();\n numberOfDays = TimeUnit.DAYS.convert(numberOfDays, TimeUnit.MILLISECONDS);\n\n System.out.println(numberOfDays);\n\n } \n catch (ParseException ex)\n {\n System.out.println("error");\n }\n }\n}\nRun Code Online (Sandbox Code Playgroud)\n\n除了捕获之外,没有任何错误,所以我\xe2\x80\x99m 有点迷失了。
\n