Bigquery.jobs()。query查询返回纪元时间1.295353708E9时间戳列
问题描述:
Bigquery.jobs().query().execute
返回时间戳的纪元时间,并且纪元时间包括带有结尾字母数字值的点(1.295353708E9
),从而将该值转换为Java时间戳失败;Bigquery.jobs()。query查询返回纪元时间1.295353708E9时间戳列
返回值1.295353708E9
相同1295353708
但不知道什么是最好的方式来处理,作为BQ的web用户界面使得它。
任何帮助高度赞赏!
答
这应该工作:
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
。
答
我做这样
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”
值得注意的是BigQuery使用秒_specifies的秒数[1](https://cloud.google.com/bigquery/preparing-data-for-bigquery#datatypes),而Java使用** mili **秒。这就是为什么需要'* 1000'的原因。 – user454322 2016-04-06 10:50:31