有 Java 编程相关的问题?

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

JavaBigQuery。乔布斯()。查询返回时间戳列的历元时间1.295353708E9

Bigquery.jobs().query().execute返回时间戳的历元时间,该历元时间包括带有尾随字母数字值的点(1.295353708E9),因此将该值转换为Java时间戳失败

Object v = checkNullAndGetColumnValue(columnIndex);
long epoch = Long.parseLong(v.toString());
String date = new java.text.SimpleDateFormat("MM/dd/yyyy HH:mm:ss").format(new java.util.Date (epoch*1000));

返回值1.295353708E91295353708相同,但不确定在BQWebUI呈现时处理该值的最佳方式

非常感谢您的帮助


共 (2) 个答案

  1. # 1 楼答案

    我是这样做的

        Calendar cal = Calendar.getInstance();
        double d = Double.parseDouble("1.295353708E9");
        long l = (long) d * 1000;
        cal.setTimeInMillis(l);
    
        String date = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss").format(cal
                .getTime());
    

    无论如何,我认为bigquery时间戳格式是“YYYY-MM-dd-HH:MM:ss.SSS”

  2. # 2 楼答案

    这应该是有效的:

     long epoch = Double.valueOf("1.295353708E9").longValue();
     String date = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss")
             .format(new Date (epoch*1000));
    

    对于给定的示例值,date字符串解析为01/18/2011 21:28:28