尝试使用FastDateFormat将String转换为日期时出现意外输出

时间:2017-04-20 11:38:54

标签: java date apache-commons-lang3

问题:

我需要将Date类Object传递给函数,并且Date对象应该包含在System Time之前一天。 对于Ex:  如果今天的日期是2017-04-20 17:01:31。那么,日期对象应该包含2017-04-21 17:01:31

  

是否可以将指定的格式存储到Date Class Object中并传入其中。

我尝试了下面这件事并且没有用。

  

任何人都可以通过代码指导我,或者我应该使用SQL查询概念添加一天。

以下是我的代码

     public static void main(String[] args) throws ParseException {
        String dateFormat="yyyy-MM-dd HH:mm:ss";
            String s2=addDate(dateFormat);
            convertStringToDate(s2,dateFormat);

        }
    public static Date convertStringToDate(String dateInStr, String dateFormat) throws ParseException
    {
        FastDateFormat fdf=FastDateFormat.getInstance(dateFormat);//("yyyy-MM-dd HH:mm:ss");
        Date date = null;
        date = fdf.parse(dateInStr);
        System.out.println("From convertStringToDate ");
        System.out.println(date);
        return date;
    }
public static String addDate(String dateFormat) throws ParseException{
            FastDateFormat fdf=FastDateFormat.getInstance(dateFormat);
            Calendar c = Calendar.getInstance();    
            c.add(Calendar.DATE,1);
            String s1=fdf.format(c.getTime());
            System.out.println("From addDate ");
            System.out.println(s1);
            return s1;
        }

convertStringToDate的预期输出:

2017-04-21 17:01:31

convertStringToDate的OutputShown:

Fri Apr 21 17:01:31 IST 2017

1 个答案:

答案 0 :(得分:0)

您需要获取类Date的实例。在您的方法addDate中,您获得了所需的日期,然后将其转换为String并返回String。然后你将String转换回Date为什么不从方法Date返回addDate并完成它?