zoukankan      html  css  js  c++  java
  • 有关时间转换的一些方法

    原创:转载请注明出处

    1、获取当天结束日期

    /**
         * author:GaoFei
         * date:2017-01-09
         * what:根据string日期获得当天结束时间
         *
         * @param dateString
         * @return stringDate
         */
        private String provideDayForEndTime(String dateString){
            if(dateString == null){return null;}
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH);
            Date currDate = null;
            try {
                currDate = sdf.parse(dateString);
            } catch (ParseException e) {
                e.printStackTrace();
            }
            Calendar start = Calendar.getInstance();
            start.setTime(currDate);
            start.set(Calendar.HOUR, 0);
            start.set(Calendar.MINUTE, 0);
            start.set(Calendar.SECOND, 0);
            Calendar end = Calendar.getInstance();
    
            end.setTime(start.getTime());
            end.set(Calendar.HOUR,23);
            end.set(Calendar.MINUTE,59);
            end.set(Calendar.SECOND,59);
            return TimeUtil.setSolrDate(end.getTime().toLocaleString());
        }

    2、获得时间戳的前一天截止时间点

    /**
         * 获得时间戳的前一天时间
         */
        public static Timestamp getTimeStampBefore(Timestamp timeStamp) {
            Date date;
            date = new Date(timeStamp.getTime());
            if(date == null) {
                return null;
            }
            long dateLong = date.getTime() - 24 * 60 * 60 * 1000;
            Date date2 = new Date(dateLong);
            int hourAmPm;
            if(date2.getHours()<12){
                hourAmPm = 23;
            }else{
                hourAmPm = 11;
            }
            Calendar start = Calendar.getInstance();
            start.setTime(date2);
    
            start.set(Calendar.HOUR, hourAmPm);
            start.set(Calendar.MINUTE, 59);
            start.set(Calendar.SECOND, 59);
            return new Timestamp(start.getTime().getTime());
        }

    3、获得solr时区错误转换时间

    /**
         * author:GaoFei
         * date:2016-12-21
         * what:将字符串时间格式进行转换:Tue Dec 20 04:14:33 CST 2016 转换成 2016-12-21
         *
         * @param dateStr
         * @return
         */
        public static String getSolrDateString(String dateStr) {
            if(dateStr == null){return null;}
    //        SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.US);
            SimpleDateFormat sdf = new SimpleDateFormat("EEE MMM dd HH:mm:ss z yyyy", Locale.ENGLISH);
            Date date = null;
            try {
                date = sdf.parse(dateStr);
                long dateLong = date.getTime() - 8*60*60*1000;
                date = new Date(dateLong);
            } catch (ParseException e) {
                e.printStackTrace();
            }
    //        String formatStr = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(dateStr);
            String formatStr2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(date);
    
            return formatStr2;
        }

    4、将时间戳转换成solr时间

    /**
         * author:Gao
    /**
         * 将solr时间转为字符串时间
         *
         * @param date
         * @return
         */
        public static String solrDateToNormalDate(String date) {
            if (date == null) {
                return date;
            }
            try {
                date = date.replace("T"," ");
                date = date.replace("Z","");
            } catch (Exception e) {
                e.printStackTrace();
                return date;
            }
            return date;
        }
    
    
    
    Fei
         * date:2016-12-26
         * 将时间戳转为solr时间
         * @param timestamp
         * @return
         */
        public static String getSolrDate(Timestamp timestamp) {
            if (timestamp == null) {
                return null;
            }
            String[] dates = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(timestamp).split(" ");
            if (dates.length < 2) {
                return null;
            }
            return dates[0] + "T" + dates[1] + "Z";
        }
  • 相关阅读:
    消息机制
    窗口!窗口!- Windows程序设计(SDK)003
    内联函数的作用
    结构体变量用 . 结构体指针用-> 的原因
    &a和a的区别
    分布电容
    介电常数
    天线
    封装的思想
    关于中断标志位
  • 原文地址:https://www.cnblogs.com/gaoxufei/p/6480546.html
Copyright © 2011-2022 走看看