具体格式的日期转换

时间:2013-07-12 06:23:09

标签: java

我想将日期转换为dd-MMM-yyyy hh:mm:ss.s此格式

我使用Date d = new Date();

获取系统日期

我正在尝试

SimpleDateFormat formatter2 = new SimpleDateFormat("dd-MMM-yyyy hh:mm:ss.s");
Date d = new Date();
String CALL_DATE = formatter2.format(d);

tats给我的输出是正确的但是当我尝试保存它时会出错:

ORA-01830: date format picture ends before converting entire input string

所以请向我推荐一下这个解决方案。

5 个答案:

答案 0 :(得分:3)

奇怪的是,没有一个答案指出为了打印毫秒,你必须使用dd-MMM-yyyy hh:mm:ss.S

注意大写S

http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

答案 1 :(得分:2)

嗯,你发布的代码对我来说很好(并编译):)我唯一需要做的就是添加一些导入。看:

import java.text.SimpleDateFormat;
import java.util.Date;

public class Test {
    public static void main(String args[]) {
        SimpleDateFormat formatter2 = new SimpleDateFormat("dd-MMM-yyyy hh:mm:ss.S");
        Date d = new Date();
        String CALL_DATE = formatter2.format(d);
        System.out.println(CALL_DATE);
    }
}

另外,就像@adarshr所说,你需要用s替换S来打印毫秒。

<强>输出:

m4tx@m4tx-N56VZ:~/Desktop$ javac Test.java 
m4tx@m4tx-N56VZ:~/Desktop$ java Test
12-Jul-2013 08:30:41.935

答案 2 :(得分:0)

根据您的要求进行一些修改,尝试使用这些功能获得帮助。

public static Date getDatebyMilliSeconds(Long timeInMillis) {

        Calendar cal = Calendar.getInstance();
        cal.setTimeInMillis(timeInMillis);
        Date date = cal.getTime();
        return date;
    }


    public static Date getDateByString(String str_date) {
        DateFormat formatter;
        Date date = new Date();
        try {
            formatter = new SimpleDateFormat("mm/dd/yyyy HH:mm:ss");
            date = (Date) formatter.parse(str_date);
        } catch (ParseException e) {
            logger.error("------- error in date conversion " + e.getMessage());
        }
        return date;
    }

您可以使用date.getTime()这将以毫秒为单位返回时间,然后您可以使用我提到的1个功能,同样通过进行一些更改,您可以使用第二个。

答案 3 :(得分:0)

尝试这个.....你的代码没问题,但我认为你错误地将代码的某些其他部分用来使用下面的代码来检查它

    import java.util.*;
    import java.text.*;

    public class Datedemo {
    public static void main(String args[]) {

      Date dNow = new Date( );
      SimpleDateFormat ft = 
      new SimpleDateFormat ("dd-MMM-yyyy hh:mm:ss.S");

      System.out.println("Current Date: " + ft.format(dNow));
   }
}

<强>输出

Current Date: 12-Jul-2013 11:56:44.44

答案 4 :(得分:0)

我不确定你为什么发布这个问题。

SimpleDateFormat formatter2 = new SimpleDateFormat("dd-MMM-yyyy hh:mm:ss.s");
Date d = new Date();
String CALL_DATE = formatter2.format(d);

这很好用。如果您想以其他格式参加日期,请参阅this