2013-07-12 169 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。 –