我想在日程時間用作MapReduce減少方連接程序中的鍵。表A的值爲2013-01-01 15:11:48
,表B的值爲1-1-2013 15:11 GMT
。爲兩個相等的日期時間獲取長整型值會得到不同的值
我解析爲:
DateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); //2013-01-01 15:11:48
Calendar cal = Calendar.getInstance();
cal.setTime(df.parse(split[TaxiFields.PICKUP_DATETIME]));
cal.set(Calendar.SECOND, 0); //disconsidering the seconds
pickupDatetime.set(cal.getTime().getTime());
我解析B中:
DateFormat df = new SimpleDateFormat("dd-MM-yyyy HH:mm zzz"); //1-1-2013 15:11 GMT,
Calendar cal = Calendar.getInstance();
cal.setTime(df.parse(split[0]));
cal.set(Calendar.SECOND, 0);
rainDate.set(cal.getTime().getTime());
但是第一給了我1357063860000
的結果,而第二個給我1357053060000
。
我失蹤了什麼?我嘗試將時區設置爲默認(cal.setTimeZone(TimeZone.getDefault());
),但它不起作用。
感謝
也許'setTimeZone'通過轉換日期時間來改變時間,而不是簡單地將它設置爲未知時區?你有沒有嘗試過'Calendar.getInstance(TimeZone.getTimeZone(「GMT」));'第一個例子? – Davio 2014-10-03 12:04:56
現在嘗試,仍然返回相同的值(1357053060000)... – 2014-10-03 12:13:03
不知道它有幫助,但兩個長值之間的差異對應於三個小時的差異。 – Tenner 2014-10-03 12:17:57