设置时区,同一个毫秒数不同时区下的转换时间不同,默认都是按本地系统的时区进行转换
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.TimeZone;
public class Test {
public static void main(String[] args) {
//假如这个是你已知的时间类型
Calendar cal = Calendar.getInstance();
cal.getTimeInMillis();
//北京时区GMT+8
Calendar beijingcal = Calendar.getInstance();
beijingcal.clear();
beijingcal.setTimeZone(TimeZone.getTimeZone("GMT+8"));
beijingcal.setTimeInMillis(cal.getTimeInMillis());
DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String beijingFormatStr = fmt.format(beijingcal.getTime());
System.out.println(beijingFormatStr);
}
}
北京 CST
[root@gcstat1 flume-ng]# date -R
Sun, 17 Aug 2014 15:37:47 +0800
未知
[root@hutx hadoop]# date
Thu Jul 17 08:57:45 PDT 2014
[root@hutx hadoop]# date -R
Thu, 17 Jul 2014 08:54:52 -0700
导致一直不对