今天我们要学习的是java当中的日期及其处理。主要内容如下:
Date
Calendar
SimpleDateFormat
第一部分:Date
java当中的日期使用Date类表示,精确到毫秒。
当你需要定义一个日期类型时,可以new 一个Date对象进行表示。例如表示当前时间: new Date();
Date类位于java.util包下,我们看看定义:
public class Date
extends Object
implements Serializable, Cloneable, Comparable<Date>
目前date主要用来表示时间,不做时间的处理(当前参考jdk1.8)。
Date中可用的方法:
before(Date date)是否在某个时间之前
after(Date date)是否在某个时间之后
getTime() 获取从格林威治时间(1970 01 01 0:0:0) 到date对象表示的时间的毫秒差,也就是时间戳。
第二部分:Calendar
我们提到日期,就避免不了时间的一系列的处理和获取操作。如获取星期、月份、年月日,年月日时分秒的增减等等。
但是Date由于设计的原因,不能良好的处理这些问题,所以,java引出了Calendar日历工具类来处理这些问题。
Calendar是java.util包下的一个类,定义如下:
public abstract class Calendar
extends Object
implements Serializable, Cloneable, Comparable<Calendar>
我们来看看Calendar的实例化和方法的使用:
实例化:
Calendar.getInstance();该静态实例方法也可以传入时区(TimeZone),语言(Locale)。
Calendar设置时间:
setTime(Date date);
set(int Field,int value);其中field可以是年月周日时分秒,如Calendar.YEAR.其中月是从0开始
set(int year,int month,int date)
set(int year,int month,int date,int hour,int minute)
set(int year,int month,int date,int hour,int minute,int second)
Calendar获取时间:
getTime(),返回Date类型。
Calendar可以获取当前时间的年月周日时分秒,get(int field),如
get(Calendar.YEAR),
get(Calendar.DAY_OF_WEEK),
get(Calendar.DAY_OF_MONTH)等等。
Calendar可以对日期进行增减计算:
add(Fileld f, int amount)
增加时amount为正数,否则为负数
我们看看Calendar在设置和获取时支持的日历字段(Filed)有哪些:
ALL_STYLES(日历类型)
AM(早晨0-12)
AM_PM(中午10-15)
PM(下午12-24 )
DATE(日)
DAY_OF_MONTH(当月第几天)
DAY_OF_WEEK(星期几)
DAY_OF_WEEK_IN_MONTH(当前周是第几周,完全按7天计算)
DAY_OF_YEAR(第几天)
HOUR(小时,0-12)
HOUR_OF_DAY(小时,0-24)
MINUTE(分)
SECOND(秒)
YEAR(年)
MONTH(月,从0开始计算)
WEEK_OF_MONTH(当前周是当月的第几周,按实际周计算)
WEEK_OF_YEAR(当前周是当年的第几周)
第三部分:SimpleDateFormat
有时候我们需要对日期和字符串进行相互转换,这时候就需要使用SimpleDateFormat。
SimpleDateFormat是java.text包下的一个工具类,提供日期和字符串的转换方法。
定义如下:
public class SimpleDateFormat extends DateFormat {}
我们看看实例化和使用:
实例化:
SimpleDateFormat f = new SimpleDateFormat();
SimpleDateFormat f = new SimpleDateFormat(String formatPattern);
formatPattern:日期字符串的格式,如yyyy-MM-dd'T'HH:mm:ss
方法:
applyPattern(String pattern)设置格式化日期的格式
format(Date date)格式日期为字符串
parse(String dateStr)将字符串转为日期
我们用一个例子演示下三个对象的使用:
public class Test {
public static void main(String[] args) {
// 1、获取当前时间
Date date = new Date();
// 2、获取前一天
// 2.1、先实例化日历类
Calendar c = Calendar.getInstance();
// 2.2、设置要处理的时间
c.setTime(date);
// 2.3、日期增减
c.add(Calendar.DAY_OF_MONTH, -1);
// 3、获取日期是星期几
c.get(Calendar.DAY_OF_WEEK);
// 4、获取日期是当月第几周,从一号起算第一周,7天一个周期
c.get(Calendar.DAY_OF_WEEK_IN_MONTH);
// 5、获取日期是当月第几周,获取实际的周
c.get(Calendar.WEEK_OF_MONTH);
// 6、获取日期是那个月
c.get(Calendar.MONTH);
// 7、获取日期的字符串表达
// 7.1、先实例化格式化对象
SimpleDateFormat sdf = new SimpleDateFormat();
// 7.2、规定格式化格式
sdf.applyPattern("yyyy-MM-dd HH:mm:ss");
// 7.3、得到期望的格式的字符串
String formatStr = sdf.format(date);
// 7.4、转换字符串为日期
try {
Date parseDate = sdf.parse("2017 07 13 11:54:30");
} catch (ParseException e) {
e.printStackTrace();
}
}
}
以上就是今天的内容:
Date
Calendar
SimpleDateFormat
你学会了吗?