java中的时间格式以及js中的时间格式转换

前言:小刘常在工作中遇到时间格式的转换,为了方便小刘将方法记录下来!

 java格式转换

如有需要可改日期格式:如年与日 时分秒 可控。


    /**
     * 时间转字符串
     * @param date
     */
    public static String DateToString(Date date){
        SimpleDateFormat sf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        return sf.format(date);
    }

    /**
     *  Calendar cal = Calendar.getInstance();
     *         Date time = cal.getTime();
     *         cal.setTime(timestamp);//设置起时间
     *         操作时间,加日期,减日期
     */
    /**
     * 字符串转date类型
     * @param s
     */
    public static Date StringToDate(String s){
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//        String time = "2019-04-08 14:35:52";
        Date date1 = null;
        try {
            date1 = sdf.parse(s);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        return date1;
    }

测试类:

    /**
     * java日期转字符串
     */
    @Test
    public void t1() throws InterruptedException {
        Date date = new Date();
        System.out.println(date);
        //日期转字符
        String s1 = Utils.DateToString(date);
        System.out.println("日期转字符\t"+s1);
        //字符转日期
        Date date1 = Utils.StringToDate(s1);
        System.out.println("字符转日期\t"+date1);
        //date 转 TimeStamp
        Timestamp timestamp=new Timestamp(date.getTime());
        System.out.println("date 转 TimeStamp\t"+timestamp);
        //timeStamp 转 date
        //父与子的关系
        Date dates = new Timestamp(System.currentTimeMillis());
        System.out.println("timeStamp 转换 date\t"+dates);
    }
温馨提示:Calendar 类操作时间,进行年月日的增减操作

测试:举个例子

 @Test
    public void fasdf(){
        Timestamp timestamp=new Timestamp(System.currentTimeMillis());
        System.out.println("时间戳"+timestamp.getTime());
        System.out.println("当前时间"+timestamp);
        Calendar cal = Calendar.getInstance();
        Date time = cal.getTime();
        cal.setTime(timestamp);//设置起时间
        System.out.println("原始"+cal.getTime().getTime());
        System.out.println("当时日期----"+ Utils.DateToString(cal.getTime()));
        /**
         * 减少半年
         */
        cal.add(Calendar.MONTH,-6);//日期减少6个月
        System.out.println("减少半年的时间戳"+cal.getTime().getTime());
        System.out.println("减少半年日期----"+ Utils.DateToString(cal.getTime()));
        cal.add(Calendar.MONTH,6);//日期加6个月
        System.out.println("增加半年的时间戳"+cal.getTime().getTime());
        System.out.println("增加半年日期----"+ Utils.DateToString(cal.getTime()));
    }

JS时间转换工具类

  /**特定格式获取当前日期
     * */
    function dateFormat(fmt, date) {
        var ret;
        var opt = {
            "Y+": date.getFullYear().toString(),        // 年
            "m+": (date.getMonth() + 1).toString(),     // 月
            "d+": date.getDate().toString(),            // 日
            "H+": date.getHours().toString(),           // 时
            "M+": date.getMinutes().toString(),         // 分
            "S+": date.getSeconds().toString()          // 秒
            // 有其他格式化字符需求可以继续添加,必须转化成字符串
        };
        for (var k in opt) {
            ret = new RegExp("(" + k + ")").exec(fmt);
            if (ret) {
                fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))
            }
            ;
        }
        ;
        return fmt;
    }
    /**获取上一个月数据
     * */
    function getPreMonth(date) {
        var arr = date.split('-');
        var year = arr[0]; //获取当前日期的年份
        var month = arr[1]; //获取当前日期的月份
        var day = arr[2]; //获取当前日期的日
        var days = new Date(year, month, 0);
        days = days.getDate(); //获取当前日期中月的天数
        var year2 = year;
        var month2 = parseInt(month) - 1;
        if (month2 == 0) {
            year2 = parseInt(year2) - 1;
            month2 = 12;
        }
        var day2 = day;
        var days2 = new Date(year2, month2, 0);
        days2 = days2.getDate();
        if (day2 > days2) {
            day2 = days2;
        }
        if (month2 < 10) {
            month2 = '0' + month2;
        }
        // var t2 = year2 + '-' + month2 + '-' + day2;
        var t2 = year2 + '-' + month2;
        return t2;
    }

应用:获取上一个月的年份和时间

    var date = new Date();
        $("#startMon").val(getPreMonth(dateFormat("YYYY-mm", date)));
        $("#endMon").val(getPreMonth(dateFormat("YYYY-mm", date)));
 /**
         * 获取下一个月
         *
         * @date 格式为yyyy-mm-dd的日期,如:2014-01-25
         */        
        function getNextMonth(date) {
            var arr = date.split('-');
            var year = arr[0]; //获取当前日期的年份
            var month = arr[1]; //获取当前日期的月份
            var day = arr[2]; //获取当前日期的日
            var days = new Date(year, month, 0);
            days = days.getDate(); //获取当前日期中的月的天数
            var year2 = year;
            var month2 = parseInt(month) + 1;
            if (month2 == 13) {
                year2 = parseInt(year2) + 1;
                month2 = 1;
            }
            var day2 = day;
            var days2 = new Date(year2, month2, 0);
            days2 = days2.getDate();
            if (day2 > days2) {
                day2 = days2;
            }
            if (month2 < 10) {
                month2 = '0' + month2;
            }
        
            var t2 = year2 + '-' + month2 + '-' + day2;
            return t2;
        }

如有不解,请加java爱好群大家交流:852665736;群里都是热心好客的小伙伴,大家一同进步。

无偿免费分享源码以及技术和面试文档,更多优秀精致的源码技术栈分享请关注微信公众号:gh_817962068649 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值