我正在尝试将字符串转换为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"));
}
}
我尝试从decodeDate中返回long,Date,java.sql.Timestamp,但是无法这样做。有没有办法将字符串转换为日期时间戳?
提前致谢。
答案 0 :(得分: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)
答案 1 :(得分: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