我正在尝试将以下字符串"2012-04-13 04:08:42.794"
转换为日期类型:
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss.SSS");
Date convertedDate;
try {
convertedDate = dateFormat.parse(dateString);
System.out.println(" in utils: "+convertedDate.toString());
} catch (ParseException e) {
e.printStackTrace();
return null;
}
//----------------- i think this is the problem
java.sql.Date sqlDate = new java.sql.Date(convertedDate.getTime());
System.out.println("sql: "+sqlDate.toString());
return sqlDate;
但这是打印以下内容:
in utils: Fri Apr 13 04:08:42 PDT 2012
如何让这个日期保留毫秒?
答案 0 :(得分:8)
convertedDate对象确实包含毫秒信息。这里的问题是toString()方法格式不打印毫秒。
待办事项
System.out.println(" in utils: " + dateFormat.format(convertedDate));
您还可以检查是否使用
设置了ms System.out.println("millis: " + convertedDate.getTime());
答案 1 :(得分:1)
Calendar now = Calendar.getInstance();
System.out.println("Current milliseconds since Jan 1, 1970 are :"
+ now.getTimeInMillis());
只需使用java.util.Calendar http://docs.oracle.com/javase/7/docs/api/java/util/Calendar.html
答案 2 :(得分:1)
他是我的(试图保持与你的代码风格相同):
import java.util.*;
import java.text.*;
public class main {
public static void main(String[] args)throws Exception {
long yourmilliseconds = 1119193190;
SimpleDateFormat sdf = new SimpleDateFormat("MMM dd,yyyy HH:mm:ss.SSS");
Date resultdate = new Date(yourmilliseconds);
System.out.println(sdf.format(resultdate)); }
}
输出:
Jan 13,1970 17:53:13.190
问候,Erwald
答案 3 :(得分:1)
您可以创建自己的打印方法,而不是使用toString()打印,因此它会打印您想要的信息。另请注意,大多数Date类都已弃用 - 请查看http://docs.oracle.com/javase/6/docs/api/java/util/Date.html