【JAVA】Date类、Calendar类

    xiaoxiao2025-08-11  6

    Date类方法

    . 1、public boolean after(Date when) . 测试此日期是否在指定日期之后。 . 返回:当且仅当此 Date 对象表示的瞬间比 when 表示的瞬间晚,才返回 true;否则返回 false。 . 2、public boolean before(Date when) . 测试此日期是否在指定日期之前。 . 返回:当且仅当此 Date 对象表示的瞬间比 when 表示的瞬间早,才返回 true;否则返回 false。 . 3、public int compareTo(Date anotherDate) . 比较两个日期的顺序。 . 返回:如果参数 Date 等于此 Date,则返回值 0;如果此 Date 在 Date 参数之前,则返回小于 0 的值;如果此 Date 在 Date 参数之后,则返回大于 0 的值。 . 4、public boolean equals(Object obj) . 比较两个日期的相等性。当且仅当参数不为 null,并且是一个表示与此对象相同的时间点(到毫秒)的 Date 对象时,结果才为 true。 . 5、public long getTime() . 返回自 1970 年 1 月 1 日 00:00:00 GMT 以来此 Date 对象表示的毫秒数。 . 6、public void setTime(long time) . 设置此 Date 对象,以表示 1970 年 1 月 1 日 00:00:00 GMT 以后 time 毫秒的时间点。 . 7、public String toString() 把此 Date 对象转换为以下形式的 String: dow mon dd hh:mm:ss zzz yyyy其中: . dow 是一周中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat)。 . mon 是月份 (Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec)。 . dd 是一月中的某一天(01 至 31),显示为两位十进制数。 . hh 是一天中的小时(00 至 23),显示为两位十进制数。 mm 是小时中的分钟(00 至 59),显示为两位十进制数。 . ss 是分钟中的秒数(00 至 61),显示为两位十进制数。 zzz 是时区(并可以反映夏令时)。标准时区缩写包括方法 parse 识别的时区缩写。如果不提供时区信息,则 zzz 为空,即根本不包括任何字符。 . yyyy 是年份,显示为 4 位十进制数。

    Calender类方法

    . abstract void add(int field, int amount) 根据日历的规则,为给定的日历字段添加或减去指定的时间量。 . boolean after(Object when) 判断此 Calendar 表示的时间是否在指定 Object 表示的时间之后,返回判断结果。 . boolean before(Object when) 判断此 Calendar 表示的时间是否在指定 Object 表示的时间之前,返回判断结果。 . void clear()将此 Calendar 的所日历字段值和时间值(从历元至现在的毫秒偏移量)设置成未定义。 . void clear(int field) 将此 Calendar 的给定日历字段值和时间值(从历元至现在的毫秒偏移量)设置成未定义。 . Object clone()创建并返回此对象的一个副本。 . int compareTo(Calendar anotherCalendar) 比较两个 Calendar 对象表示的时间值(从历元至现在的毫秒偏移量)。 . protected void complete()填充日历字段中所有未设置的字段。 . protected abstract void computeFields()将当前毫秒时间值 time 转换为 fields[] 中的日历字段值。 . protected abstract void computeTime()将 fields[] 中的当前日历字段值转换为毫秒时间值 time。 . boolean equals(Object obj) 将此 Calendar 与指定 Object 比较。 . int get(int field)返回给定日历字段的值。 . int getActualMaximum(int field)给定此 Calendar 的时间值,返回指定日历字段可能拥有的最大值。 . int getActualMinimum(int field)给定此 Calendar 的时间值,返回指定日历字段可能拥有的最小值。 . static Locale[] getAvailableLocales()返回所有语言环境的数组,此类的 getInstance 方法可以为其返回本地化的实例。 . String getDisplayName(int field, int style, Locale locale) 返回给定 style 和 locale 下的日历 field 值的字符串表示形式。 . Map<String,Integer> getDisplayNames(int field, int style, Locale locale) 返回给定 style 和 locale 下包含日历 field 所有名称的 Map 及其相应字段值。 . int getFirstDayOfWeek()获取一星期的第一天;例如,在美国,这一天是 SUNDAY,而在法国,这一天是 MONDAY。 . abstract int getGreatestMinimum(int field)返回此 Calendar 实例给定日历字段的最高的最小值。 . static Calendar getInstance() 使用默认时区和语言环境获得一个日历。 . static Calendar getInstance(Locale aLocale) 使用默认时区和指定语言环境获得一个日历。 . static Calendar getInstance(TimeZone zone) 使用指定时区和默认语言环境获得一个日历。 . static Calendar getInstance(TimeZone zone, Locale aLocale) 使用指定时区和语言环境获得一个日历。 . abstract int getLeastMaximum(int field) 返回此 Calendar 实例给定日历字段的最低的最大值。 . abstract int getMaximum(int field) 返回此 Calendar 实例给定日历字段的最大值。 . int getMinimalDaysInFirstWeek()获取一年中第一个星期所需的最少天数,例如,如果定义第一个星期包含一年第一个月的第一天,则此方法将返回 1。 . abstract int getMinimum(int field) 返回此 Calendar 实例给定日历字段的最小值。 . Date getTime()返回一个表示此 Calendar 时间值(从历元至现在的毫秒偏移量)的 Date 对象。 . long getTimeInMillis()返回此 Calendar 的时间值,以毫秒为单位。 . TimeZone getTimeZone()获得时区。 . int hashCode()返回该此日历的哈希码。 . protected int internalGet(int field)返回给定日历字段的值。 . boolean isLenient()判断日期/时间的解释是否为宽松的。 . boolean isSet(int field) 确定给定日历字段是否已经设置了一个值,其中包括因为调用 get 方法触发内部字段计算而导致已经设置该值的情况。 . abstract void roll(int field, boolean up) 在给定的时间字段上添加或减去(上/下)单个时间单元,不更改更大的字段。 . void roll(int field, int amount) 向指定日历字段添加指定(有符号的)时间量,不更改更大的字段。 . void set(int field, int value) 将给定的日历字段设置为给定值。 . void set(int year, int month, int date) 设置日历字段 YEAR、MONTH 和 DAY_OF_MONTH 的值。 . void set(int year, int month, int date, int hourOfDay, int minute) 设置日历字段 YEAR、MONTH、DAY_OF_MONTH、HOUR_OF_DAY 和 MINUTE 的值。 . void set(int year, int month, int date, int hourOfDay, int minute, int second) 设置字段 YEAR、MONTH、DAY_OF_MONTH、HOUR、MINUTE 和 SECOND 的值。 . void setFirstDayOfWeek(int value) 设置一星期的第一天是哪一天;例如,在美国,这一天是 SUNDAY,而在法国,这一天是 MONDAY。 . void setLenient(boolean lenient) 指定日期/时间解释是否是宽松的。 . void setMinimalDaysInFirstWeek(int value) 设置一年中第一个星期所需的最少天数,例如,如果定义第一个星期包含一年第一个月的第一天,则使用值 1 调用此方法。 . void setTime(Date date) 使用给定的 Date 设置此 Calendar 的时间。 . void setTimeInMillis(long millis) 用给定的 long 值设置此 Calendar 的当前时间值。 . void setTimeZone(TimeZone value) 使用给定的时区值来设置时区。 . String toString() 返回此日历的字符串表示形式

    获取当前系统时间和日期并格式化输出:

    //SimpleDateFormat格式化时间 import org.junit.Test; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class Test1 { @Test public void test6(){ Date d = new Date(); SimpleDateFormat df = new SimpleDateFormat("yyyy年MM月dd日 hh:mm:ss ms"); //把日期时间格式化成字符串 String cur = df.format(d); System.out.println(cur); try { //把符合模式串的字符串转换成Date对象 Date dd = df.parse("2018年05月19日 08:55:42 5542"); } catch (ParseException e) { e.printStackTrace(); } } }

    计算某代码的性能:

    import org.junit.Test; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class Test1 { @Test public void test4(){ long start = System.currentTimeMillis(); circle1(); long end = System.currentTimeMillis(); System.out.println(end - start); } }

    得到当前时间的毫秒数:

    import org.junit.Test; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class Test1 { @Test public void test5(){ System.out.println(System.currentTimeMillis()); } }

    日历类的基本用法

    @Test public void test3(){ //取年 int year = calendar.get(Calendar.YEAR); //取月 int month = calendar.get(Calendar.MONTH); //取日 int day = calendar.get(Calendar.DAY_OF_MONTH); //取时 int hour = calendar.get(Calendar.HOUR); //取分 int minute = calendar.get(Calendar.MINUTE); //取秒 int second = calendar.get(Calendar.SECOND); //取星期几 int weedday = calendar.get(Calendar.DAY_OF_WEEK); System.out.println(year + "年" + month + "月" + day + "日,星期" + weedday); } }

    当前时间增加一年

    import org.junit.Before; import org.junit.Test; import java.util.Calendar; public class Test2 { private Calendar calendar = null; @Before public void test1(){ calendar = Calendar.getInstance(); } @Test public void test4(){ //当前时间增加一年 calendar.add(Calendar.YEAR,1); //取年 int year = calendar.get(Calendar.YEAR); //取月 int month = calendar.get(Calendar.MONTH); //取日 int day = calendar.get(Calendar.DAY_OF_MONTH); System.out.println(year + "年" + month + "月" + day + "日"); } }

    计算规定时间的星期

    import org.junit.Before; import org.junit.Test; import java.util.Calendar; public class Test2 { /** * 2014年2月的最后一天是星期几 */ @Test public void test5(){ calendar.set(2014,3,1); calendar.add(Calendar.DAY_OF_MONTH,-1); int day = calendar.get(Calendar.DAY_OF_WEEK); System.out.println(day); } }
    最新回复(0)