【发布时间】:2014-03-01 06:54:29
【问题描述】:
我将输入日期作为字符串输入 mm/dd/yyyy 并希望将其转换为 yyyy-mm-dd 我试试这段代码
Date Dob = new SimpleDateFormat("yyyy-mm-dd").parse(request.getParameter("dtDOB"));
【问题讨论】:
-
好的,所以你解析了它......现在格式化它。
我将输入日期作为字符串输入 mm/dd/yyyy 并希望将其转换为 yyyy-mm-dd 我试试这段代码
Date Dob = new SimpleDateFormat("yyyy-mm-dd").parse(request.getParameter("dtDOB"));
【问题讨论】:
好的 - 你已经陷入了 java 日期格式最常见的陷阱之一:
mm 是 分钟
MM 是 月
您已将月份解析为分钟。相反,将模式更改为:
Date dob = new SimpleDateFormat("yyyy-MM-dd").parse(...);
然后输出,再次确保您使用MM 几个月。
String str = new SimpleDateFormat("dd-MM-yyyy").format(dob);
【讨论】:
"dd/MM/yyyy"
【讨论】:
作为解析的替代方法,您可以使用正则表达式
s = s.replaceAll("(\\d+)/(\\d+)/(\\d+)", "$3-$2-$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
【讨论】:
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"));
}
}
【讨论】: