2013-07-12 127 views
-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); 

纹身给我的输出是正确的,但是当系统日期我试着保存它给出错误:

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

,所以请向我建议这个解决方案。

+0

你的代码工作正常,并打印'12-Jul-2013 11:56:06.6' –

+1

同样在这里。你遇到了什么错误? –

+0

没有复制和没有堆栈跟踪:投票关闭 –

回答

0

我不知道为什么你张贴了这个作为一个问题。

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

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

+0

当我尝试保存它给出的错误:ORA-01830:日期格式图片在转换整个输入字符串之前结束 – AloNE

+0

@AloNE你确定你在代码中发现了这个错误吗? – m4tx

+0

不,它不给我正确的输出,但在保存时它会给出错误。 – AloNE

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打印毫秒。

输出:

[email protected]:~/Desktop$ javac Test.java 
[email protected]:~/Desktop$ java Test 
12-Jul-2013 08:30:41.935 
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个功能我所提到的,在相同的方式。

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 
3

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

注意大写S

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

+0

OP的代码工作正常,打印12-Jul-2013 11:56:06.6 –

+0

它打印06.6,因为你有's'。这不可能是正确的输出!它只是将毫秒重复数秒。 – adarshr

+0

但是OP说他得到了na错误。现场+1。 –