如何将字符串时间戳转换为毫秒

时间:2014-06-27 14:08:11

标签: java

我在oracle sql上运行一个查询,它返回字符串中sysdate的时间戳部分 像" 16:30:0.0" 所以我想知道如何将其转换为毫秒。

请帮帮忙?

3 个答案:

答案 0 :(得分:2)

这是使用标准的Java Date API。

DateFormat df = new SimpleDateFormat("HH:mm:ss.SSS");
df.setTimeZone(TimeZone.getTimeZone("UTC"));
df.parse("16:06:43.233").getTime();

如果您使用的是Java 8,请参阅新的java.time API。如果没有,并且您将要做很多与日期时间相关的工作,请参阅JodaTime

答案 1 :(得分:1)

使用ResultSet的getTime(column)-method而不是getString(column)来避免自己进行转换:http://docs.oracle.com/javase/7/docs/api/java/sql/ResultSet.html#getTime%28int%29

答案 2 :(得分:0)

试试这个,

SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss.SSS");
Date date = sdf.parse("16:30:0.0");
System.out.println(date.getTime());

但是,此代码将返回自 01.01.1970 16:30:00.000 以来的毫秒数。如果您想从当天获得毫克,您可以执行以下操作。

Calendar today = Calendar.getInstance();

Calendar cal = Calendar.getInstance();
cal.setTime(date);
cal.set(Calendar.YEAR, today.get(Calendar.YEAR));
cal.set(Calendar.MONTH, today.get(Calendar.MONTH));
cal.set(Calendar.DAY_OF_MONTH, today.get(Calendar.DAY_OF_MONTH));

System.out.println(cal.getTimeInMillis());