Java中Calendar类的常用方法

Java中Calendar类的常用方法Calendar类常用方法的记录:获取时间//使用默认时区和语言环境获得一个日历Calendarcal=Calendar.getInstance();//赋值时年月日时分秒常用的6个值,注意月份下标从0开始,所以取月份要+1System.out.println(“年:”+cal.get(Calendar.YEAR));System.ou

大家好,又见面了,我是你们的朋友全栈君。

Calendar 类常用方法的记录:

获取时间

    // 使用默认时区和语言环境获得一个日历
    Calendar cal = Calendar.getInstance();
    // 赋值时年月日时分秒常用的6个值,注意月份下标从0开始,所以取月份要+1
    System.out.println("年:" + cal.get(Calendar.YEAR));
    System.out.println("月:" + (cal.get(Calendar.MONTH) + 1));       
    System.out.println("日:" + cal.get(Calendar.DAY_OF_MONTH));
    System.out.println("时:" + cal.get(Calendar.HOUR_OF_DAY));
    System.out.println("分:" + cal.get(Calendar.MINUTE));
    System.out.println("秒:" + cal.get(Calendar.SECOND));

今天是 2018 年 2 月 12 日,运行结果:

年:2018
月:2
日:12
时:15
分:57
秒:39

设置时间

月份的下标从 0 开始,设置时同样需要注意,比如我们设置为 2 月 15 日除夕当晚的倒计时的最后一秒: 2018-02-15 23:59:59
可以这样:

    Calendar cal = Calendar.getInstance();
    // 如果想设置为某个日期,可以一次设置年月日时分秒,由于月份下标从0开始赋值月份要-1
    // cal.set(year, month, date, hourOfDay, minute, second);
    cal.set(2018, 1, 15, 23, 59, 59);

或者也可以单个字段一一设置:

    // 或者6个字段分别进行设置,由于月份下标从0开始赋值月份要-1
    cal.set(Calendar.YEAR, 2018);
    cal.set(Calendar.MONTH, Calendar.FEBRUARY);
    cal.set(Calendar.DAY_OF_MONTH, 15);
    cal.set(Calendar.HOUR_OF_DAY, 23);
    cal.set(Calendar.MINUTE, 59);
    cal.set(Calendar.SECOND, 59);
    System.out.println(cal.getTime());

打印的时间结果为:

    Thu Feb 15 23:59:59 CST 2018

时间计算

add方法:
比如在除夕当晚最后一秒,add 一秒:

    Calendar cal = Calendar.getInstance();
    System.out.println(cal.getTime());
    cal.set(2018, 1, 15, 23, 59, 59);
    cal.add(Calendar.SECOND, 1);
    System.out.println(cal.getTime());

打印时间结果如下,日期会自动进入下一天:

    Thu Feb 15 23:59:59 CST 2018
    Fri Feb 16 00:00:00 CST 2018

再比如 1 月 31 号的时候,月份加一,会出现怎样结果:

    Calendar cal = Calendar.getInstance();
    cal.set(2018, 1, 31, 8, 0, 0);
    System.out.println(cal.getTime());
    cal.add(Calendar.MONTH, 1);
    System.out.println(cal.getTime());

运行结果:

    Wed Jan 31 08:00:00 CST 2018
    Wed Feb 28 08:00:00 CST 2018

说明 add 月份时,会将不存在的日期归为当月日历的最后一天。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/131041.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • JVM调优工具

    JVM调优工具JVM调优工具Jconsole:jdk自带,功能简单,但是可以在系统有一定负荷的情况下使用。对垃圾回收算法有很详细的跟踪。JProfiler:商业软件,需要付费。功能强大。VisualVM:JDK自带,功能强大,与JProfiler类似。推荐。如何调优观察内存释放情况、集合类检查、对象树上面这些调优工具都提供了强大的功能,但是总的来说一般分为以下几类功能堆信息查…

    2022年6月1日
  • Ubuntu16.04安装ros_u盘安装双系统

    Ubuntu16.04安装ros_u盘安装双系统一、win10下安装Ubuntu16.04双系统1、制作系统U盘下载Ubuntu16.04我们首先去Ubuntu官网下一个Ubuntu16.04的iso镜像文件。

    2022年9月3日
  • asp.net面试题

    asp.net面试题ASP.NET常见面试题及答案(130题)1.简述private、protected、public、internal修饰符的访问权限。答.private:私有成员,在类的内部才可

    2022年7月1日
  • Linux查看当前用户及其权限管理[通俗易懂]

    Linux查看当前用户及其权限管理[通俗易懂]linux查看当前用户cwhoami或whoami或whomomlikes[ec2@ip-10-10-5-79~]$whoami创建用户打开终端,输入:sudoadduser[用户名][ec2@ip-10-10-5-79~]$sudoadduserxiaozhou切换用户打开终端,输入:su[用户名]或者su-l[用户名][ec2@ip-10-10-5-79~]$suxiaozhou用户组在Linux系统中,每个用户都有一个归属(用户组

    2022年5月29日
  • 通过反射获取实例化

    通过反射获取实例化IMyServlet接口packagecn.itheima.web.servlet;publicinterfaceIMyServlet{publicvoidinit();publicvoidservice();publicvoiddestory();}接口的实现packagecn.itheima.web.servlet;publicclassMy

    2022年7月12日
  • vscode设置删除行快捷键[通俗易懂]

    vscode设置删除行快捷键[通俗易懂]开发中习惯的快捷键删除:ctrl+Dvscode的删除快捷键:ctrl+shift+K修改方式:默认ctrl+D被addselectiontonextfindmatch使用,先修改调它的快捷键,如图改为ctrl+shift+alt+D,按回车键保存在修改DeleteLine的快捷键为ctrl+D,按回车键保存完成…

    2022年6月15日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号