您的位置 首页 java

Java,世界时区,英国格林威治市时间转北京时间,代码工具实现

世界时区

根据各个国家经纬度的不同,时区也不相同,时区一共划分为24个时区,每一时区由一个英文字母表示,每隔经度15°划分一个时区,有一个例外,每个时区有一条 中央子午线

代码实现

测试类:

 public class TimeZoneUtils Test  {

    public  static   void  main(String[] args) {
        // 英国格林威治市时间
        String timeStr = "2022.09.13 17:08:42";
        // 输出北京时间
        System.out.println(TimeZoneUtils.toBeiJingFromGreenwich(timeStr));
        System.out.println(TimeZoneUtils.toBeiJingDateFromGreenwich(timeStr));
    }

}  

工具类:

 import  java .text.Parse Exception ;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;

public final class TimeZoneUtils {

    /**
     * @param fromZoneId
     * @param toZoneId
     * @param format
     * @param timeStr
     * @return
     */    public static String to(String fromZoneId, String toZoneId,  String  format, String timeStr) {
        String result = "";
        try {
            TimeZone timeZone1 = TimeZone.getTimeZone(fromZoneId);
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);
            simpleDateFormat.setTimeZone(timeZone1);
            Date date = simpleDateFormat.parse(timeStr);
            TimeZone timeZone2 = TimeZone.getTimeZone(toZoneId);
            simpleDateFormat.setTimeZone(timeZone2);
            result = simpleDateFormat.format(date);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return result;
    }

    /**
     * @param fromZoneId
     * @param toZoneId
     * @param format
     * @param timeStr
     * @return
     */    public static Date toDate(String fromZoneId, String toZoneId, String format, String timeStr) {
        Date result = null;
        try {
            String dateStr = to(fromZoneId, toZoneId, format, timeStr);
            SimpleDateFormat simpleDateFormat = new SimpleDateFormat(format);
            result = simpleDateFormat.parse(dateStr);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return result;
    }

    /**
     * @param timeStr
     * @return
     */    public static String toBeiJingFromGreenwich(String timeStr) {
        // 英国格林威治市
        String fromZoneId = "GMT+1:00";
        // 北京时间
        String toZoneId = "GMT+8:00";
        String format = "yyyy.MM.dd HH:mm:ss";
        return to(fromZoneId, toZoneId, format, timeStr);
    }

    /**
     * @param timeStr
     * @return
     */    public static Date toBeiJingDateFromGreenwich(String timeStr) {
        // 英国格林威治市时间
        String fromZoneId = "GMT+1:00";
        // 北京时间
        String toZoneId = "GMT+8:00";
        String format = "yyyy.MM.dd HH:mm:ss";
        return toDate(fromZoneId, toZoneId, format, timeStr);
    }

}
  

文章来源:智云一二三科技

文章标题:Java,世界时区,英国格林威治市时间转北京时间,代码工具实现

文章地址:https://www.zhihuclub.com/172976.shtml

关于作者: 智云科技

热门文章

网站地图