北京时间换算
/**
* 北京时间转换成 别的时区时间
* @param stime
* @param timeNum
*/
public static Date setTimeConvert(Date stime, String timeNum) {
double convertNum= Double.parseDouble(timeNum);
// 东加西减
// 以北京时间 为准
if(convertNum>0){
//西方时间点
double num =-(convertNum+8);
stime=addDateMinut(stime, num);
}else{
//东方时间点
double num= Math.abs(convertNum);
double diff=num-8;
stime=addDateMinut(stime,diff);
}
return stime;
}
public static Date addDateMinut(Date date, double hour){
String hourStr=String.valueOf(hour);
Calendar cal = Calendar.getInstance();
cal.setTime(date);
int h=0;
if(hourStr.indexOf(".")>-1){
String hours[]=hourStr.split("\\.");
h=Integer.parseInt(hours[0]);
double minute=Double.parseDouble(("0."+hours[1]))*60;
int m=(int)minute;
cal.add(Calendar.MINUTE, m);// 24小时制
}else{
h=Integer.parseInt(hour+"");
}
cal.add(Calendar.HOUR, h);// 24小时制
date = cal.getTime();
System.out.println("after:" + date); //显示更新后的日期
cal = null;
return date;
}
/**
* 别的时间转换成北京时间
* @param stime
* @param timeNum
* @return
*/
public static Date setTimeToBeiJing(Date stime, String timeNum) {
double convertNum= Double.parseDouble(timeNum);
// 东加西减
// 以北京时间 为准
if(convertNum>0){
//西方时间点
double num =(convertNum+8);
stime=addDateMinut(stime, num);
}else{
//东方时间点
double num= Math.abs(convertNum);
double diff=0;
diff=8-num;
stime=addDateMinut(stime,diff);
}
return stime;
}
/**
* @param args
* @throws ParseException
*/
public static void main(String[] args) throws ParseException {
//System.out.println(formatDate(parseDate("2010/3/6")));
//System.out.println(getDate("yyyy年MM月dd日 E"));
//long time = new Date().getTime()-parseDate("2012-11-19").getTime();
//System.out.println(time/(24*60*60*1000));
//北京时间转换成 别的区时间
//Date stime= new Date();
//Date etime= new Date();
//setTimeConvert(stime,etime,-7);
//System.out.println("stime"+stime);
//别的时区转换成北京时间
//莫斯科时间
//2019-7-29 09:39:48
Date stime = DatetimeUtils.parseStr2Date("2019-7-29 09:39:48", "yyyy-MM-dd HH:mm:ss");
setTimeToBeiJing(stime,"-2");
}