zoukankan      html  css  js  c++  java
  • java日期时间处理集合

    本文主要介绍java中日期时间的处理,包括获取时间,时间相加减,格式化等操作。

    持续更新中...

    时间格式化

    //时间格式化
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

    获取当前时间

    //获取当前时间
    Date currentTime = new Date();
    System.out.println(String.format("系统当前时间:%s",dateFormat.format(currentTime)));
    
    //输出
    2019-04-11 11:07:57

     时间字符串转日期类型

    //时间字符串转日期类型,以下时间加减均以此时间为基础
    String strTime = "2019-04-10 18:18:78";
    Date fixedTime;
    try{
        //特定时间字符串转为日期类型,需要处理ParseException异常
        //注意,时间字符串格式要与dateFormat定义的一致,否则引发异常
        fixedTime = dateFormat.parse(strTime);
    }
    catch (ParseException ex){
        fixedTime = new Date();
        ex.printStackTrace();
    }
    System.out.println(String.format("字符转换时间:%s,以下时间加减均以此时间为基础",dateFormat.format(fixedTime)));
    
    //输出
    字符转换时间:2019-04-10 18:19:18,以下时间加减均以此时间为基础

     使用Calendar来实现日期加减1小时,1天,1个月和1年

    //使用Calendar来实现加减1小时,1天,1个月和1年
    Calendar calendar = Calendar.getInstance();
    //指定时间减1小时
    calendar.setTime(fixedTime);
    calendar.add(Calendar.HOUR_OF_DAY, -1);
    System.out.println(String.format("1小时之前的时间:%s", dateFormat.format(calendar.getTime())));
    //指定时间加1小时
    calendar.setTime(fixedTime);
    calendar.add(Calendar.HOUR_OF_DAY, 1);
    System.out.println(String.format("1小时之后的时间:%s", dateFormat.format(calendar.getTime())));
    //指定时间减1天
    calendar.setTime(fixedTime);
    calendar.add(Calendar.DAY_OF_YEAR, -1);
    System.out.println(String.format("1天之前的时间:%s", dateFormat.format(calendar.getTime())));
    //指定时间加1天
    calendar.setTime(fixedTime);
    calendar.add(Calendar.DAY_OF_YEAR, 1);
    System.out.println(String.format("1天之后的时间:%s", dateFormat.format(calendar.getTime())));
    //指定时间减1个月
    calendar.setTime(fixedTime);
    calendar.add(Calendar.MONTH, -1);
    System.out.println(String.format("1个月之前的时间:%s", dateFormat.format(calendar.getTime())));
    //指定时间加1个月
    calendar.setTime(fixedTime);
    calendar.add(Calendar.MONTH, 1);
    System.out.println(String.format("1个月之后的时间:%s", dateFormat.format(calendar.getTime())));
    //指定时间减1年
    calendar.setTime(fixedTime);
    calendar.add(Calendar.YEAR, -1);
    System.out.println(String.format("1年之前的时间:%s", dateFormat.format(calendar.getTime())));
    //指定时间加1年
    calendar.setTime(fixedTime);
    calendar.add(Calendar.YEAR, 1);
    System.out.println(String.format("1年之后的时间:%s", dateFormat.format(calendar.getTime())));
    
    //输出
    10分钟之前的时间:2019-04-10 18:09:18
    10分钟之后的时间:2019-04-10 18:29:18
    1小时之前的时间:2019-04-10 17:19:18
    1小时之后的时间:2019-04-10 19:19:18
    1天之前的时间:2019-04-09 18:19:18
    1天之后的时间:2019-04-11 18:19:18
    1个月之前的时间:2019-03-10 18:19:18
    1个月之后的时间:2019-05-10 18:19:18
    1年之前的时间:2018-04-10 18:19:18
    1年之后的时间:2020-04-10 18:19:18

    注意:Calendar.HOUR_OF_DAY是24小时制,Calendar.HOUR是12小时制。

  • 相关阅读:
    第15章 RCC—使用HSE/HSI配置时钟—零死角玩转STM32-F429系列
    第14章 启动文件详解—零死角玩转STM32-F429系列
    第13章 GPIO-位带操作—零死角玩转STM32-F429系列
    第12章 GPIO输入-按键检测—零死角玩转STM32-F429系列
    使用Vmware过程中,突然网络连接不上问题
    Yaf自定义autoload以实现Model文件和Controller文件命名区分
    Yaf学习过程中遇到的问题小记
    网页出现横向滚动条的原因可能是使用bootstrap不当引起
    微信小程序开发(一)
    nginx 启动报错找不到nginx.pid文件
  • 原文地址:https://www.cnblogs.com/codecat/p/10685380.html
Copyright © 2011-2022 走看看