0

我想以 yyyy-mm-dd 格式存储今天的日期。在存储之前,我已经获取了今天的日期,对其进行了格式化并再次将格式化的字符串解析为日期。它以不同于我想要的格式提供输出日期。我如何获取日期,将其格式化为“yyyy-mm-dd”并再次将其转换为日期并希望以“yyyy-mm-dd”格式输出。请找到以下代码并告诉我我错在哪里

DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
java.util.Date date = new java.util.Date();
java.util.Date date1;
String datestring=dateFormat.format(date);

try {           
    date1=dateFormat.parse(datestring);
    System.out.print(date1);
} catch (ParseException ex) {
     Logger.getLogger(accordcclass.class.getName()).log(Level.SEVERE, null, ex);
}

我得到的上述代码的输出是 Thu Mar 07 00:00:00 GMT 2013。但我希望输出为 2013-01-07

4

3 回答 3

6

我有同样的问题,这就是我所做的:

DateFormat inputDateFormat = new SimpleDateFormat("dd-MMM-yyyy HH:mm");
DateFormat outputDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
System.out.println(outputDateFormat.format(inputDateFormat.parse("09-SEP-2013 10:00")));

这样我就可以以原始格式解析日期并以数据库兼容格式输出。

正如有人之前提到的那样,有可能使用 PreparedStatement,但我不想这样做。

于 2013-09-08T14:38:17.567 回答
5

不要使用Date对象来打印,直接使用你的datestring变量。使用DatetoString使用Locale.

编辑:添加,如果你想Date用一种格式存储你的变量,它不会那样工作。ADate没有格式,它只代表时间。如何在 GUI、控制台或其他任何地方显示它是您需要指定格式的地方,如果您希望它与当前Locale格式不同。

于 2013-03-08T14:24:45.767 回答
0

您正在使用 DateFormat 来格式化和重新解析。

你不需要重新解析。只需使用 DateFormat 进行格式化。

  DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
  java.util.Date date = new java.util.Date();
  String datestring=dateFormat.format(date);
  System.out.println( datestring );
于 2013-03-08T14:27:48.053 回答