有時候擷取目前時間時常常會有8個小時的差距,後來發現擷取目前時間,
Date now=new Date();
now.getTime();返回的long值正確的,但是我一旦把now解析為String字串時就會少8小時,所以設定下面的時區。現在留著以防以後再用。
private long getNowTime(){
DateFormat format=getDateFormat();
Date now=new Date();
Log.d("joey","-------now time---no format:"+now.getTime());
String now_time=format.format(now);
Log.d("joey","-------now time:"+now_time);
return now.getTime();
//返回毫秒是目前時間不會錯,但是中文格式的時候少8小時。
}
private DateFormat getDateFormat(){
DateFormat my_format=new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
TimeZone china =TimeZone.getTimeZone("Asia/Shanghai");
my_format.setTimeZone(china);
return my_format;
}
private long getOpenTime(String date){//直接得到活動的開始時間,格式是:yyyy/MM/dd HH:mm:ss
// DateFormat format2=DateFormat.getDateInstance();
// TimeZone china =TimeZone.getTimeZone("Asia/Shanghai");
// format2.setTimeZone(china);
long a =0;
try {
Date date1=getDateFormat().parse(date);
a=date1.getTime();
} catch (ParseException e) {
e.printStackTrace();
}
return a;
}
這樣的話目前時間和輸入的那個date時間之間的相差就不會出錯了。