【发布时间】:2017-04-20 19:24:14
【问题描述】:
问题:
我需要在给定的日期中添加指定的天数。 该函数应返回 Date 类 Object 并应使用 FastDateFormat。
解决方案:
我编写了代码,但我需要 yyyy-MM-dd HH:mm:ss 中的输出。
当我将输入传递给这个函数时
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
谁能指导我如何解决上述问题?
【问题讨论】:
-
你在哪里打印日期?由于您返回
Date实例,因此这里没有格式。打印fdf.format(c.getTime());以查看正确的输出 -
您的要求没有意义,抱歉。如果需要返回特定格式的日期(例如
2017-04-21 13:16:13),则需要返回String,不能有Date的特定格式。也许如果你告诉我们你为什么要这样做,我们可以指导你一些有用的方向。 -
尽管
FastDateFormat似乎比SimpleDateFormat有一些优势,但在2017 年,我建议使用更新的Java 日期和时间类,包括DateTimeFormatter,它也是线程安全的。跨度> -
@OleV.V.确切地说,他不能具有带有
Date对象的特定格式。 -
您不能以特定格式返回 Date 类对象
yyyy-MM-dd HH:mm:ss您必须使用format方法,该方法将返回此格式的字符串表示,因此您的函数的返回类型应该是字符串。
标签: java date parsing datetime apache-commons