我有一个约会。例如02/16/2012。为了使用我的数据库格式,我需要做的是将其转换为2012-02-16。我认为这将非常简单。但我无法工作。这是我的日期解析器。
String endDateString = "02/16/2012"
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-mm-dd");
endDate = dateFormat.parse(endDateString)
有什么建议吗?感谢。
答案 0 :(得分:4)
您要做的是将传入格式解析为Date
对象
final SimpleDateFormat idf = new SimpleDateFormat("MM/dd/yyyy");
final Date indate = idf.parse("02/16/2012");
然后将Date
对象重新格式化为您想要的格式
final SimpleDateFormat odf = new SimpleDateFormat("yyyy-MM-dd");
final String s = odf.format(indate);
答案 1 :(得分:1)
您应该从一种正确的格式解析它,然后使用另一种正确的格式转换为TO字符串。你在做什么 - 试图用MM/dd/yyyy
格式解释yyyy-MM-dd
格式的日期,即不正确。
<强>样品强>
public static void main(String[] args) throws ParseException {
SimpleDateFormat sourceFormat = new SimpleDateFormat("MM/dd/yyyy");
SimpleDateFormat destinationFormat = new SimpleDateFormat("yyyy-MM-dd");
String sourceDateString = "02/16/2012";
String destinationDateString;
Date dat; // this object stores "perfect" date object
// interpreting string with input format and converting it to date
dat = sourceFormat.parse(sourceDateString);
// expressing date object as string in destination format
destinationDateString = destinationFormat.format(dat);
System.out.format("Done from %s to %s\n", sourceDateString, destinationDateString));
}
答案 2 :(得分:0)
您指定的日期格式必须与输入的日期格式匹配,如下所示:
SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/yyyy");
答案 3 :(得分:0)
此代码段可以告诉您如何完成它。
SimpleDateFormat inputDateFormat = new SimpleDateFormat("MM/dd/yyyy");
SimpleDateFormat outputDateFormat = new SimpleDateFormat("yyyy-MM-dd");
String endDateString = "02/16/2012";
String endDate = outputDateFormat.format(inputDateFormat.parse(endDateString));
答案 4 :(得分:0)
您还可以在数据库级别转换日期。例如,MySQL具有STR_TO_DATE函数。在你的情况下,它将是STR_TO_DATE('02 / 16/2012','%m /%d /%Y')
答案 5 :(得分:-1)
您正在使用错误的格式进行解析
new SimpleDateFormat("MM/dd/yyyy");