将To_TimeStamp函数转换为java

时间:2015-08-25 19:55:49

标签: java oracle date

package testOnly;

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

public class Tests {
    public static void main(String[] args) throws Exception {

        Tests test = new Tests();
        String s = "8/24/2015 3:09:51.000000 AM"; 
        String s2 = "fmMMfm/fmDDfm/YYYY fmHH12fm:MI:SS.FF AM";
        test.to_timestamp(s, s2);
    }

    Timestamp to_timestamp(String dateText, String oraclePattern) throws Exception {
        String javaDatePattern = null;
        if (oraclePattern.equals("fmMMfm/fmDDfm/YYYY fmHH12fm:MI:SS.FF AM")) {
            javaDatePattern = "MM-dd-yyyy HH.mm.ss.SS a";
        }
        if (javaDatePattern==null) {
            throw new RuntimeException("Unhandled oracle date pattern");
        }

        SimpleDateFormat sdf = new SimpleDateFormat(javaDatePattern);

        Date date= sdf.parse(dateText);
        return new Timestamp(date.getTime());
    }
}
//Sample data 
//TO_TIMESTAMP('8/24/2015 3:09:51.000000 AM','fmMMfm/fmDDfm/YYYY fmHH12fm:MI:SS.FF AM')

所以在oracle中有类似To_Date,To_TimeStamp等功能。我想将oracle风格转换为java simpleDateFormat但是我一直在得到不可解决的日期错误我想知道是否有人能够看到我看不到的内容。

1 个答案:

答案 0 :(得分:1)

您的java日期格式存在问题,并且您的日期输入不匹配,因此java无法解析。就像你在格式中指定“ - ”日期分隔符并提供与时间分隔符相同的“/”日期。尝试下面的代码将解析日期

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

public class Tests {
    public static void main(String[] args) throws Exception {

        Tests test = new Tests();
        String s = "8/24/2015 3:09:51.000000 AM"; 
        String s2 = "fmMMfm/fmDDfm/YYYY fmHH12fm:MI:SS.FF AM";
        test.to_timestamp(s, s2);
    }

    Timestamp to_timestamp(String dateText, String oraclePattern) throws Exception {
        String javaDatePattern = null;
        if (oraclePattern.equals("fmMMfm/fmDDfm/YYYY fmHH12fm:MI:SS.FF AM")) {
            javaDatePattern = "MM/dd/yyyy HH:mm:ss.SS a";
        }
        if (javaDatePattern==null) {
            throw new RuntimeException("Unhandled oracle date pattern");
        }

        SimpleDateFormat sdf = new SimpleDateFormat(javaDatePattern);

        Date date= sdf.parse(dateText);
        return new Timestamp(date.getTime());
    }
}