如何在java中将mm / dd / yyyy转换为yyyy-mm-dd

时间:2014-03-01 06:54:29

标签: java date format

我将输入日期作为字符串输入mm / dd / yyyy并想将其转换为yyyy-mm-dd 我试试这段代码

Date Dob = new SimpleDateFormat("yyyy-mm-dd").parse(request.getParameter("dtDOB"));

5 个答案:

答案 0 :(得分:5)

好的 - 你已经陷入了最常见的java日期格式陷阱之一:

  • mm 分钟
  • MM 个月

你已经解析了几个月的分钟。而是将模式更改为:

Date dob = new SimpleDateFormat("yyyy-MM-dd").parse(...);

然后输出,再次确保您使用MM几个月。

String str = new SimpleDateFormat("dd-MM-yyyy").format(dob);

答案 1 :(得分:1)

应该是

SimpleDateFormat("yyyy-MM-dd")

资本 M

如需更多信息,请参阅Oracle Docs

答案 2 :(得分:1)

作为解析的替代方法,您可以使用正则表达式

s = s.replaceAll("(\\d+)/(\\d+)/(\\d+)", "$3-$2-$1");

答案 3 :(得分:1)

前 -

String dob = "05/02/1989";  //its in MM/dd/yyyy
String newDate = null;
Date dtDob = new Date(dob);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");

try {
      newDate = sdf.format(dtDob);
} catch (ParseException e) {}

System.out.println(newDate); //Output is 1989-05-02

答案 4 :(得分:0)

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;

public class FormatDate {

  private SimpleDateFormat inSDF = new SimpleDateFormat("mm/dd/yyyy");
  private SimpleDateFormat outSDF = new SimpleDateFormat("yyyy-mm-dd");

  public String formatDate(String inDate) {
    String outDate = "";
    if (inDate != null) {
        try {
            Date date = inSDF.parse(inDate);
            outDate = outSDF.format(date);
        } catch (ParseException ex) 
            System.out.println("Unable to format date: " + inDate + e.getMessage());
            e.printStackTrace();
        }
    }
    return outDate;
  }

  public static void main(String[] args) {
    FormatDate fd = new FormatDate();
    System.out.println(fd.formatDate("12/10/2013"));
  }

}