【JAVA】Date类、Calendar类
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);
}
}
相关文章
- Java反射机制详解(3) -java的反射和代理实现IOC模式 模拟spring
- Word处理控件Aspose.Words功能演示:使用Java合并MS Word文档
- java 程序员 和 三八女神节有什么神秘的关系,你晓得吗? 用Java 给女神绘制一张贺卡你会吗?
- Java: 线上故障如何快速排查?来看这套技巧大全(高德地图的总结)
- Java Date Time 教程-java.sql.Timestamp
- Java Date Time 教程-java.util.Date
- Java基础语法:1.第一个java程序
- Java-struts2的问题 java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils
- Java之线程池深度剖析
- Java的MD5加密和解密
- Java Design Demo -简单的队列-异步多任务队列(java android)
- java.lang.OutOfMemoryError: Java heap space
- Java修改服务器(tomcat)响应头 Server:Apache-Coyote/1.1
- Java打印输出:java在线8x8x
- java中时间类Date和Calendar的使用
- [java][db]JAVA分布式事务原理及应用
- 【JAVA】浅谈java枚举类