【发布时间】:2018-04-12 22:46:49
【问题描述】:
我只想在Month,Year 中输出输出,但我遇到了问题。它是Unparseable date: "Apr 5, 2018" 的Exception。我已将日期存储在sqlite 中的Bill_Date 列中,并且其字段中的格式为"Apr 5, 2018"。那么我怎样才能仅以 (Apr, 2018) 格式获得月份和年份。这是我在下面给出的代码:
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Collection;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Locale;
public class Demo2 {
private static Connection con;
private static String query;
private static PreparedStatement PStat,PStat2;
private static ResultSet res,res2;
private static String Bill_Date;
public static void main(String args[])
{
try
{
con=Database.Database();
query="select Bill_Date from DailySales where Bill_Date='Apr 5, 2018'";
PStat=con.prepareStatement(query);
res=PStat.executeQuery();
while(res.next())
{
Bill_Date=res.getString("Bill_Date");
}
SimpleDateFormat month=new SimpleDateFormat("MMMM,yyyy",Locale.ENGLISH);
SimpleDateFormat dateformat=new SimpleDateFormat("MMM-dd,YYYY");
Date date=dateformat.parse(Bill_Date);
String MONTH=month.format(date);
System.out.println(MONTH);
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
有这个错误。
java.text.ParseException: Unparseable date: "Apr 5, 2018"
at java.text.DateFormat.parse(Unknown Source)
at Demo2.main(Demo2.java:34)
【问题讨论】:
-
问自己这个问题 -
MMM-dd,YYYY与Apr 5, 2018有何相同之处? -
除非您完全控制输入字符串,否则您的企业注定要失败。随机外部程序生成的日期格式差异太大,Java 的 dateformat 类无法处理。
-
仅供参考,麻烦的旧日期时间类,如
java.util.Date、java.util.Calendar和java.text.SimpleDateFormat现在是 legacy,被 Java 8 及更高版本中内置的 java.time 类所取代.见Tutorial by Oracle。
标签: java date exception unparseable