-4

这是我正在使用的代码:

String string = "08/07/2013".replace('/', '-');
Date date = new SimpleDateFormat("yyyy-MM-dd").parse(string);

为什么日期返回:“Wen Jan 3 00:00:00 EST 14”?这根本不是我告诉它使用的日期格式。

编辑:我需要这种格式,因为我使用的数据库需要这种格式。

4

3 回答 3

4

您用于解析日期字符串的格式与它不匹配。您正在yyyy使用08.

使用以下格式:

new SimpleDateFormat("dd-MM-yyyy")

以及为什么要替换/-?您只能为原始字符串构建模式:

String string = "08/07/2013"
Date date = new SimpleDateFormat("dd/MM/yyyy").parse(string);

如果你想要你的日期字符串yyyy-MM-dd格式,那么你可以格式化dateusingDateFormat#format(Date)方法:

String formattedDate = new SimpleDateFormat("yyyy-MM-dd").format(date);

也可以看看:

于 2013-08-07T13:38:02.367 回答
1

当您使用字符串(例如“yyyy-MM-dd”)指定一些简单日期格式时,您必须提供相同格式的日期才能获取日期对象,例如。“1991-07-24”。

String mydate = "1991/07/24";
Date formattedDate = new SimpleDateFormat("yyyy/MM/dd").parse(mydate);

现在,如果您想将其转换为任何其他格式,您可以通过将此日期对象格式化为特定格式来实现。

String dateInOtherFormat = new SimpleDateFormat("dd-MMM-yyyy").format(formatteddate);

dateInOtherFormat 的输出将是 ... 24-JUL-1991 。

于 2013-08-07T14:14:59.267 回答
0

好的,我的建议很愚蠢,但如果你需要这种格式,试试这个

String[] arr = "08/07/2013".split("/");
String newString = arr[2]+"-"+arr[1]+"-"arr[0];
Date date = new SimpleDateFormat("yyyy-MM-dd").parse(newString);

注意如果您的原始字符串格式为“MM/dd/YYYY”,请使用:

String newString = arr[2]+"-"+arr[0]+"-"arr[1];
于 2013-08-07T14:07:43.697 回答