zoukankan      html  css  js  c++  java
  • Date和Calendar

    Date和Calendar

    Calendar比Date拥有更加高级的操作, 底层源码比Date更加复杂

    Date (类)

    Date

    java.uril.Date java提供的日期的工具类, 在JDK1.0中,Date类是唯一的一个代表时间的类,但是由于Date类不便于实现国际化,所以从JDK1.1版本开始,推荐使用Calendar类进行时间和日期处理

    构造方法

    常用无参构造进行创建对象 , 例如: Date date = new Date();

    常见方法

    对于日期的年月日, 时分秒 进行操作, 其中 带删除线的是已过时

    返回值 方法 说明
    int getYear() 获取从1900到现在多少年了
    int getDate() 获取今天是一个月中的第几天
    int getDay() 获取今天是一周中的第几天
    int getHours() 获取现在几点了(小时)
    int getMinutes() 获取现在是多少分
    int getMonth() 获取现在是当前月份-1(源码中月份是从0~11)
    int getSeconds() 获现在取多少秒
    int getTime() 获取1970年1月1日0点到现在的毫秒值
    String toLocaleString() 输出例如: 2020-5-16 11:50:18格式的日期时间

    Calendar类 (抽象类)

    Calendar

    java.util.Calendar Calendar(日历类) 是一个抽象类, 从JDK1.1版本开始,在处理日期和时间时,系统推荐使用Calendar类进行实现。在设计上,Calendar类的功能要比Date类强大很多,而且在实现方式上也比Date类要复杂一些.

    Calendar对象创建方式

    Calendar cal = Calendar.getInstance();

    输出cal会得到, 里面包含了好多信息, 比如年月日,时区等

    java.util.GregorianCalendar[time=1589690832737,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=29,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2020,MONTH=4,WEEK_OF_YEAR=21,WEEK_OF_MONTH=4,DAY_OF_MONTH=17,DAY_OF_YEAR=138,DAY_OF_WEEK=1,DAY_OF_WEEK_IN_MONTH=3,AM_PM=1,HOUR=0,HOUR_OF_DAY=12,MINUTE=47,SECOND=12,MILLISECOND=737,ZONE_OFFSET=28800000,DST_OFFSET=0]
    

    常用方法

    返回值 方法 说明
    int get(int fieId) 参数fieId是Calendar里的静态属性,见fieId 常用的静态属性,
    可以获取年, 月, 日等信息
    Date getTime() 可以把Calendar转为Date对象
    void set(int field, int value) 设置年月日, 时分秒等值
    void setTime(Date date) 把一个Date对象转为Calendar,

    fieId 常用的静态属性

    这些 属性都是静态属性,

    属性 说明
    YEAR 年, (四位数)
    MONTH 月,(0~11), 实际获取的是当前月份-1
    DAY_OF_MONTH ,当月的第几天(几号)
    DAY_OF_WEEK , 当前周的第几天 (周日为1, 周一为2, 依此类推, 最大为7)
    HOUR_OF_DAY , 一天中的第几个小时(最大24)
    MINUTE
    SECOND
    MILLISECOND 毫秒
    12个月单词全大写 分别代表12个月份 (0~11)

    用法实例:

    main方法中代码如下:

    Calendar cal = Calendar.getInstance(); // 获取Calendar对象
    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.DAY_OF_WEEK)); // 周
    System.out.println(cal.get(Calendar.HOUR_OF_DAY)); // 时
    System.out.println(cal.get(Calendar.MINUTE)); // 分
    System.out.println(cal.get(Calendar.SECOND)); // 秒
    System.out.println(cal.get(Calendar.MILLISECOND)); // 毫秒
    
    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()); // 转为Date类型显示
    

    扩展: LocalDateTime

    LocalDateTime是JDK8的新的API, 对比Calendar来说, 线程更安全. 详细使用可参考开发文档API

  • 相关阅读:
    Windows 编程,程序编译使用的命令行工具。
    showmemory.c 和 hello.s 源码
    jps命令
    A亚马逊WS网上系列讲座——怎么样AWS云平台上千万用户的应用建设
    Android比较字符串是空的(isEmpty)
    NSDictionary、NSMutableDictionary基本使用
    写贤治学生:关键是要管理好自己的时间
    Spark SQL Catalyst源代码分析Optimizer
    leetcode
    SQL Server 权限管理
  • 原文地址:https://www.cnblogs.com/zpKang/p/12900078.html
Copyright © 2011-2022 走看看