字符串(dd-MM-yyyy HH:mm)到日期(yyyy-MM-dd HH:mm)| Java的

时间:2010-12-22 17:38:39

标签: java

我在“dd-MM-yyyy HH:mm”中有一个字符串,需要将其转换为格式的日期对象 “yyyy-MM-dd HH:mm”。

以下是我用来转换的代码

oldScheduledDate = "16-05-2011 02:00:00";
DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date oldDate = (Date)formatter.parse(oldScheduledDate);

现在当我打印oldDate时,我得到了

Sat Nov 01 02:00:00 GMT 21,这是完全错误的,我在这里做错了什么?

4 个答案:

答案 0 :(得分:20)

    String dateSample = "10-01-2010 21:10:05";

    String oldFormat = "dd-MM-yyyy HH:mm:ss";
    String newFormat = "yyyy-MM-dd HH:mm:ss";

    SimpleDateFormat sdf1 = new SimpleDateFormat(oldFormat);
    SimpleDateFormat sdf2 = new SimpleDateFormat(newFormat);


    try {
        System.out.println(sdf2.format(sdf1.parse(dateSample)));

    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

答案 1 :(得分:5)

“yyyy-MM-dd”看起来与“16-05-2011”看起来不一样。嗯。那么,为什么不呢?

提示:

  1. DateFormat非常直观。它采用指定的格式并使用它 - 没什么特别的。
  2. 处理:输入日期字符串 - >转换(带输入格式) - >日期 - >转换(使用输出格式) - >输出日期字符串
  3. 帖子中的代码包含输出格式,但没有导入格式。

答案 2 :(得分:1)

一种简单的方法是交换字母。

String s = "16-05-2011 02:00:00";
String newDate=s.substring(6,10)+s.substring(3,6)+'-'+s.substring(0,2)+s.substring(10);

答案 3 :(得分:0)

如果要输出格式化日期

,则需要使用格式化程序
public static void main(String[] args) throws ParseException {
    String oldScheduledDate = "16-05-2011 02:00:00";
    DateFormat oldFormatter = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
    DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    Date oldDate = (Date)oldFormatter .parse(oldScheduledDate);
    System.out.println(formatter.format(oldDate));
}