Java 将字符串转换为日期

Java 将字符串转换为日期,java,date,Java,Date,我正在尝试将字符串转换为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 decodeDat

我正在尝试将字符串转换为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"));
}
}

我尝试返回long、Date、java.sql.Timestamp,但未能返回。有没有办法将字符串转换为日期时间戳


提前感谢。

我怀疑是否有预构建的函数可以满足您的需要,您必须解析字符串并使用现有的日历函数来设置日期的各个部分。构建函数应该很容易,因为您知道自己的格式

然后你可以用

Calendar.set(int year, int month, int date, int hourOfDay, int minute, int second) 
创建具有适当时间戳的日历对象


您试图返回这些类型但无法返回是什么意思?你想返回什么数据类型?你的问题是什么?我不想返回字符串。它应该是一个日期时间值。(sql server)太棒了!它只解决了一个问题。新的java.sql.Timestamp(df.parse(target,pos.getTime())
    // 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)