【问题标题】:Unexpected Output while trying yo convert String to date using FastDateFormat尝试使用 FastDateFormat 将字符串转换为日期时出现意外输出
【发布时间】:2017-09-17 00:38:52
【问题描述】:

问题:

我需要将日期类对象传递给一个函数,并且该日期对象应该包含系统时间前一天。 例如: 如果今天的日期是 2017-04-20 17:01:31。那么,Date 对象应该包含 2017-04-21 17:01:31

是否可以将指定的格式存储到日期类对象中并传递给它。

我尝试了以下方法,但没有成功。

如果可以通过代码或我应该使用 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 的输出显示:

Fri Apr 21 17:01:31 IST 2017

【问题讨论】:

  • 我不明白你的问题。实际输出是多少,预期输出是多少?
  • "是否可以将指定的格式存储到日期类对象中"
  • @RC.编辑了代码
  • @RC。是的,但它应该在日期类
  • 不,通过 Date#toString 打印日期时使用的格式不是您可以选择的,如果您确实需要,请在日期周围使用一些包装器和适当的 Wrapper#toString

标签: java date apache-commons-lang3


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2012-03-03
    • 2021-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-21
    • 2021-10-06
    • 2022-01-08
    相关资源
    最近更新 更多