zoukankan      html  css  js  c++  java
  • JAVA日期与时间

    一:java.util.Data 包

    Data对象表示一个精确到毫秒的瞬间。

    下面我仅介绍它还剩下的为数不多的几个方法(这些方法的共同点是Date与毫秒值的转换):

    构造方法:

    • Date(): 在底层调用System.currentTimeMillis()作为日期参数
    • Date(long date): 根据指定的long整数(从1970-1-1 00:00:00以来经过的毫秒数)来生成Date对象.

    方法

    • boolean after(Date when): 测试this日期是否在指定日期when之后;
    • boolean before(Date when): 测试this日期是否在指定日期when之前;
    • long getTime(): 获取从1979-01-01 00:00:00 到Date对象之间经过的毫秒值;
    • void setTime(long time): 设置时间,time含义上同.

    二:java.util.calendar 包

    由于Data存在很多的缺陷,因此提供了一个calendar抽象类来处理日期和时间。是所有日历类的模板,因此,我们可以继承Calendar来实现其他的历法(比如阴历)。

    Java中提供了一种Calendar的默认实现java.util.GregorianCalendar格里高利日历(其实JDK还默认提供了一款日本历法java.util.JapaneseImperialCalendar),也就是我们所说的公历. 使用

    Calendar.getInstance();获取的就是默认的GregorianCalendar,getInstance()方法的内部会调用cal = new GregorianCalendar(zone, aLocale);来生成一个格里高利日历实例.

    下面介绍常用的方法:

    • void add(int field, int amount)  根据日历的规则,将指定的时间量添加或减去给定的日历字段。field是Calendar类的类变量, 如:Calendar.DATECalendar.MONTHCalendar.HOURCalendar.DAY_OF_WEEK。但需要指出的是Calendar.MONTH月份的起始值不是1, 而是0(一月:0, 二月:1 …), Calendar.DAY_OF_WEEK代表的星期, 起始值是周日(周日:1, 周一:2 …) ;让amount为正数, 如果要减少某字段的值, 让amount为负数. 且当超出他的允许范围时, 会发生进位.
    • int get(int field)  返回给定日历字段的值。
    • int getActualMaximum(int field)  给定日历日历的时间值,返回指定日历字段可以拥有的最大值。
    • int getActualMinimum(int field) 给定日历日历的时间值,返回指定日历字段可以拥有的最小值
    • void roll(int field, int amount)  将指定的(签名)数量添加到指定的日历字段,而不更改较大的字段。
    • void set(int field, int value) 将给定的日历字段设置为给定值。
    • void set(int year, int month, int date) 设置日历字段年、月和月的月份值。
    • void set(int year, int month, int date, int hourOfDay, int minute, int second) 设置字段年、月、日、月、小时、分钟和秒的值。
    • void setTimeInMillis(long millis)从给定的长值设置此日历的当前时间。
    • long getTimeInMillis() 以毫秒返回此日历的时间值。

    详细文档介绍:https://docs.oracle.com/javase/8/docs/api/java/util/Calendar.html

    三:java.text.DateFormat

    java.text.DateFormat包用于日期格式化,是一个抽象类

    方法:

    • static DateFormat getDateInstance()获取默认格式的默认格式化样式的日期格式化程序。
    • static DateFormat getDateTimeInstance()获取具有默认区域设置的默认格式化样式的日期/时间格式化程序。
    • static DateFormat getTimeInstance()获取具有默认区域设置的默认格式化样式的时间格式化程序。

    但由于在我们的实际开发中很少直接用DateFormat类,而我们比较常用的是其子类SimpleDateFormat。

    四:java.text.SimpleDateFormat.

    java.text.SimpleDateFormat可以非常灵活的格式化Date, 也可以用于解析各种格式的日期字符串.创建SimpleDateFormat对象时需要传入一个pattern字符串,这个pattern不是正则表达式,而是一个日期模板字符串.

    方法:

    • String format(Date date) 将日期格式化为日期/时间字符串。
    • Date parse(String source) 从给定字符串的起始处解析文本以生成日期。

    详细文档介绍:https://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html#number

  • 相关阅读:
    DotNetCore + Sonar + Coverlet 代码覆盖率检查
    Docker + Sonarqube 环境搭建
    使用cmd进行tfs的签入
    Swashbuckle.AspNetCore(v2.5.0)使用小记
    Ocelot(v7.0.6)使用小记
    layui.formSelects.render(); 需要先执行
    .net core编译时设置不自动生成“netcoreapp3.0”目录
    C# List引用类型的克隆
    HTTP Error 502.5
    GPS服务端(上)-Socket服务端(golang)
  • 原文地址:https://www.cnblogs.com/dengwang/p/8994923.html
Copyright © 2011-2022 走看看