我在oracle sql上运行一个查询,它返回字符串中sysdate的时间戳部分 像" 16:30:0.0" 所以我想知道如何将其转换为毫秒。
请帮帮忙?
答案 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());