zoukankan      html  css  js  c++  java
  • 关于时间与日历

    获取UTC时间,但是设置了全局的TimeZone,导致后面的时间都是以此Zone为准:

    TimeZone.setDefault(TimeZone.getTimeZone("GMT+8"));
    Calendar cal = Calendar.getInstance();
    Date date = cal.getTime();

    用时差计算UTC时间:

        public static Date getCurrentUTCTime() {
            Calendar calendar = Calendar.getInstance();
            int offset = calendar.get(Calendar.ZONE_OFFSET); 
            calendar.add(Calendar.MILLISECOND, -offset);
            return calendar.getTime();
        }
    

     MySql数据库中的日期类型字段,对应java中的Date类应该使用java.sql.Date或者java.sql.Timestamp,都是继承了java.util.Date.

      注:java.sql.Date只精确到年月日

    UTC转Local时间:

        /**
         * 功能描述: 数据库中的utc时间转换为指定格式本地时间
         */
        public static String utcToLocal(Date utc, String format) {
            if (null == utc) {
                return null;
            }
            SimpleDateFormat sdf = new SimpleDateFormat(format);
            String utcStr = sdf.format(utc);
            return utcToLocal(utcStr, format, format);
        }
    
        /**
         * 功能描述: 将指定格式的UTC时间转为指定格式的本地时间字符串
         */
        public static String utcToLocal(String utcStr, String utcFormat, String localFormat) {
            SimpleDateFormat sdf = new SimpleDateFormat(utcFormat);
            sdf.setTimeZone(TimeZone.getTimeZone(TIMEZONE_UTC));
            Date utc = null;
            try {
                utc = sdf.parse(utcStr);
            } catch (ParseException e) {
                LOGGER.error("parse find wrong.", e);
            }
            sdf = new SimpleDateFormat(localFormat);
            sdf.setTimeZone(TimeZone.getDefault());
            return sdf.format(utc);
        }
    

      

  • 相关阅读:
    CEPH篇 目录
    kubernetes篇 容器用户权限控制
    深度学习篇-如何理解置信区间
    Mac软件安装篇 for Mac
    JAVA进阶篇 内存模型
    负载均衡篇 不同层次的负载均衡(2/3/4/7)
    NETTY篇 一篇文章看懂NETTY
    base64加密后无法解密
    Spring-Cloud-Gateway 从升级到放弃
    spring gateway 截取response 长度缺失
  • 原文地址:https://www.cnblogs.com/fengdeng/p/8527029.html
Copyright © 2011-2022 走看看