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.295353708E9
与1295353708
相同,但不确定bq web UI呈现它的最佳方法是什么。
任何帮助都非常感谢!
答案 0 :(得分:3)
这应该有效:
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
。
答案 1 :(得分:3)
我这样做
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”