有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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

我正在oracle sql上运行一个查询,它以字符串形式返回sysdate的时间戳部分 比如“16:30:0.0” 所以我想知道如何把它转换成毫秒

请帮忙


共 (3) 个答案

  1. # 1 楼答案

    这是使用标准的JavaDateAPI

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

    如果您使用的是Java8,请参阅新的java.timeAPI。如果没有,您将要做大量与日期时间相关的工作,请参见JodaTime

  2. # 3 楼答案

    试试这个

    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());