北京时间换算
/** * 北京时间转换成 别的时区时间 * @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"); }