1

在我的应用程序用户中选择日期,2013-01-02 但在 MySql DB 中,列格式就像02-Jan-2013这样想要更改日期格式

我的代码是:

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-mm-dd");
    SimpleDateFormat formatter1 = new SimpleDateFormat("dd-mmm-yyyy");
    Date start_date = (Date)formatter.parse(GBRF.getStart_date());//GBRF.getStart_date() returns Form Data as 2013-01-02
    String dt=formatter1.format(start_date);
    Date sd=(Date)formatter1.parse(dt);

在这样的结束sd打印日期Wed Jan 02 00:01:00 IST 2013

我不想要那种格式..只是我想要喜欢02-Jan-2013

给我一个想法..在此先感谢

4

3 回答 3

4

您可以格式化DateStringwith SimpleDateFormat,之后如果您尝试打印日期实例,它将调用toString()Date 类的方法,该方法的输出没有变化,并且您无法更改该输出,因为它来自toString()实现

注意:在您的格式中,您需要使用 M 表示月份(注意大写 M)

于 2013-01-07T07:41:40.283 回答
2

Date对象本身没有格式。它只存在一个时间点。当您将其转换为String.

另请注意,m该格式用于分钟而不是月。所以你可能想要一个像dd-MMM-yyyy.

尝试

System.out.println(formatter1.format(sd));

打印您喜欢的日期。

于 2013-01-07T07:42:19.390 回答
0

您需要先更改日期格式:

`SimpleDateFormat formatter1 = new SimpleDateFormat("dd-MMM-yyyy");`

在您的情况下,如果您只是 print dt,它应该以所需的格式打印日期,而不是Date再次将其转换为对象,即sd

当您打印sd时,没有任何格式,它将打印 Date 对象的默认 String 实现,这正是您所看到的输出

于 2013-01-07T07:46:08.283 回答