2014-10-31 86 views
1

Bigquery.jobs().query().execute返回時間戳的紀元時間,並且紀元時間包括帶有結尾字母數字值的點(1.295353708E9),從而將該值轉換爲Java時間戳失敗;Bigquery.jobs()。query查詢返回紀元時間1.295353708E9時間戳列

​​

返回值1.295353708E9相同1295353708但不知道什麼是最好的方式來處理,作爲BQ的web用戶界面使得它。

任何幫助高度讚賞!

+0

值得注意的是BigQuery使用秒_specifies的秒數[1](https://cloud.google.com/bigquery/preparing-data-for-bigquery#datatypes),而Java使用** mili **秒。這就是爲什麼需要'* 1000'的原因。 – user454322 2016-04-06 10:50:31

回答

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

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」