2014-05-07 44 views
0

我想將字符串轉換爲sql日期時間值。例如201405021843300400應該變爲2014-05-02 18:43:30:400到微秒。將字符串轉換爲日期

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

public class DateFormat { 

public static String decodeDate(String myDate, String pattern) { 

    SimpleDateFormat sdf = new SimpleDateFormat(pattern); 
    ParsePosition pos = new ParsePosition(0); 

    Date tmpDateTime = sdf.parse(myDate, pos); 

    DateFormat dfFinal = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS"); 

    System.out.println("Milliseconds to DateTime: " + dfFinal.format(tmpDateTime)); 

    return dfFinal.format(tmpDateTime); 
} 

public static void main(String args[]) { 

    System.out.println(decodeDate("201405021843300400", "yyyyMMddhhmmssSSSS")); 
} 

}

我試圖返回長,日期的java.sql.Timestamp出decodeDate的,但未能如願。有沒有辦法將字符串轉換爲日期時間戳?

在此先感謝。

+0

你什麼意思,你試圖返回這些類型,並沒有能夠?你想要返回哪種數據類型? – SirPentor

+0

你的問題到底是什麼? – anirudh

+0

我不想返回一個字符串。它應該是日期時間值。 (sql server) – CFNinja

回答

2
// java.sql.Date  -> java.util.Date 
    // java.sql.Timestamp -> java.util.Date 
    // java.sql.Time  -> java.util.Date 

    // e.g. with long value 

    String target = "201405021843300400"; 
    DateFormat df = new SimpleDateFormat("yyyyMMddhhmmssSSSS"); 

    java.sql.Timestamp date = new java.sql.Timestamp(df.parse(target).getTime()); 

    or 
    new java.sql.Timestamp(year, month, date, hour, minute, second, nano) 
+0

太棒了!它與一個修復工作。新的java.sql.Timestamp(df.parse(target,pos).getTime()) – CFNinja

0

我懷疑有一個預製功能會做你想做的,你將不得不解析出字符串,並使用現有的日曆功能來設置日期的各個部分。因爲你知道你的格式,所以構建函數應該很容易。

然後你可以使用

Calendar.set(int year, int month, int date, int hourOfDay, int minute, int second) 

,以創建具有相應時間戳的Calendar對象。

http://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html