-4

我想将日期转换为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

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

4

5 回答 5

3

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

注意大写S

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

于 2013-07-12T06:28:04.233 回答
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 所说,您需要替换sS以打印毫秒。

输出:

m4tx@m4tx-N56VZ:~/Desktop$ javac Test.java 
m4tx@m4tx-N56VZ:~/Desktop$ java Test
12-Jul-2013 08:30:41.935
于 2013-07-12T06:27:03.683 回答
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 个函数,同样通过进行一些更改,您可以使用第二个函数。

于 2013-07-12T06:27:04.990 回答
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
于 2013-07-12T06:27:14.220 回答
0

我不确定您为什么将其发布为问题。

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

这工作正常。如果您想以其他格式获取日期,请参阅

于 2013-07-12T06:37:26.340 回答