创建一个接受字符串对象的函数,并以dd-MM-yyyy格式返回Date对象

时间:2016-04-22 05:23:40

标签: java date date-formatting

我在字符串对象中有日期。我想转换为Date对象。

Date getDateFmString(String dateString)
{

 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
 Date convertedCurrentDate = sdf.parse(dateString);
 return convertedCurrentDate ;
}

上面的函数返回后输出。

 Fri Apr 22 00:00:00 IST 2016
  • 但我希望以“2016-03-01”格式输出
  • 功能应仅采用字符串。
  • 函数应返回Date对象。

6 个答案:

答案 0 :(得分:2)

我已经完成了很多关于网络的研究,但我从一位专家那里得到了解决方案。

  Date getDateFrmString(String dDate)
  {       

    java.sql.Date dDate  = new java.sql.Date(new SimpleDateFormat("yyyy-MM-dd").parse(sDate).getTime());
    return dDate;
  }  

这就是我想要的。

答案 1 :(得分:0)

更改日期格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

SimpleDateFormat sdf = new SimpleDateFormat("dd-mm-yyyy");

希望这有效

答案 2 :(得分:0)

您正在使用错误的格式进行解析尝试

String dateString="01-01-2016";
SimpleDateFormat sdfP = new SimpleDateFormat("dd-MM-yyyy");
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date convertedCurrentDate = sdfP .parse(dateString);
String date=sdf.format(convertedCurrentDate );
System.out.println(date);

<强>输出:

2016-01-01

DEMO1

如果您希望格式为dd-MM-yyyy,则无需定义单独的SimpleDateFormat对象。

String dateString="01-01-2016";
SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy");
Date convertedCurrentDate = sdf.parse(dateString);
String date=sdf.format(convertedCurrentDate );
System.out.println(date);

<强>输出:

01-01-2016

DEMO2

要格式化字符串日期,首先必须使用String所具有的相同日期格式解析String to Date对象,然后使用所需格式对其进行格式化,如上面的代码所示。

答案 3 :(得分:0)

参见此示例

public Class DateFormatDemo{ 

public static void main (String args[]) {

SimpleDateFormat formatter = new SimpleDateFormat("dd/MM/yyyy);
String dateInString = "01/01/2015";

try{

Date date = formatter.parse(dateInString);
System.out.println(date);
System.out.println(formatter.format(date)); 

}catch(ParseException e){
e.printStackTrace();
}
}
}

link可能会帮助您进行字符串到日期的对象转换

答案 4 :(得分:0)

Date个对象没有格式。只有String可以。 Date对象将以 告诉 格式为的格式输出。这完全取决于调用DateFormat.format()对象的格式。在toString()对象上调用Date方法会使用DateFormat "dow mon dd hh:mm:ss zzz yyyy"

答案 5 :(得分:0)

让我们一步一步来做:

  1. 您的日期为dd-MM-yyyy格式的字符串。
  2. 您想将其转换为日期。 (为此你使用的是SimpleDateFormat)
  3. 现在您正在打印日期。这里的问题是你打印转换的日期对象或输入字符串? 如果是日期对象,则调用日期类的toString方法。
  4. 根据对 java.util.Date 类的评论,它是:

    dow mon dd hh:mm:ss zzz yyyy
    similar to
    Fri Apr 22 00:00:00 IST 2016
    

    这与第二种方法中输出的结果一致。但是,即使运行该代码又是多么奇怪。

    String inputStr = "11-11-2012";
    DateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy");
    Date inputDate = dateFormat.parse(input);
    

    未定义变量'input'。

    有哪些可能的解决方案:

    1. 在打印日期时,根据要求使用SimpleDateFormat将其转换回String。

      Date d =new Date();
      SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
      String dStr = sdf.format(dateString);
      System.out.printn(dStr);
      
    2. 扩展java.util.Date类并覆盖toString,但这不是一个好主意。