1

我只想要一个明智的输出,Month,Year但我遇到了问题。它是一个ExceptionUnparseable date: "Apr 5, 2018"我已将日期存储在Bill_DateColumn in 中sqlite,并且它的格式"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)
4

2 回答 2

6

两个问题:

  1. 使用大写Y意味着称为“周年”的东西,它与年不同。请改用ys。
  2. 您有一个-日期字符串中不存在的格式。使格式具有空格(或使数据具有-)。

用这个:

SimpleDateFormat dateformat = new SimpleDateFormat("MMM d,yyyy");
于 2018-04-12T22:52:08.423 回答
2

格式化程序中缺少一个空格,您还有一个额外的-

SimpleDateFormat dateformat=new SimpleDateFormat("MMM dd, yyyy");

谢谢@大卫

此外,您的年份格式似乎是错误的。用于yyyy正确的年份格式。

于 2018-04-12T22:50:35.337 回答