1、Calendar
Calendar提供了一个类方法getInstance,以此获得此类型的一个通用对象,Calendar的getInstance返回一个Calendar对象,其日历字段值已由当前日期和时间初始化。
Calendar对日历字段的操作有三种方法:
set() ,add() , roll()
set(f,value)方法的含义是把日历字段f设置成value,它设置了一个内部的成员变量,以指示f发生了改变,但是直到调用get()、getTime()、getTimeInMillis()、add() 或 roll() 时才会重新计算日历的时间值)。
add(f,delate),将delate添加到f字段中,这相当于是set(f,get(f)+delate),当然,这样改动的话,可能日历的其他字段也会发生相应的改变,与 set() 不同,add() 强迫日历系统立即重新计算日历的毫秒数和所有字段。
roll(f,value)与add(f,delate)的区别 :在完成调用后,更大的字段无变化。
Calendar c1 = Calendar.getInstance();
// 获得年份
int year = c1.get(Calendar.YEAR);
// 获得月份
int month = c1.get(Calendar.MONTH) + 1;
// 获得日期
int date = c1.get(Calendar.DATE);
// 获得小时
int hour = c1.get(Calendar.HOUR_OF_DAY);
// 获得分钟
int minute = c1.get(Calendar.MINUTE);
// 获得秒
int second = c1.get(Calendar.SECOND);
// 获得星期几(注意(这个与Date类是不同的):1代表星期日、2代表星期1、3代表星期二,以此类推)
int day = c1.get(Calendar.DAY_OF_WEEK);
2、SimpleDateFormat
SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类。
SimpleDateFormat是DateFormat抽象类的实现类,DateFormat继承Format,Format定义了编程接口,用于将语言环境敏感的对象格式化为
String和将 String重新解析为对象。
在格式化日期的时候,经常用到的构造方法是带一个String参数的
Public SimpleDateFormat(String pattern)
这个构造函数的意思是用给定的模式和默认的语言环境构的日期格式符号来格式化。
SimpleDateFormat中有format方法和pase方法,format方法是将Date对象转化为String字符串,pase是将字符串转化为Date对象。
下面通过代码来展示日期和字符串之间的转化。
假如我要将一个日期类型的时间格式转化成"yyyy-mm-dd"类型的字符串,需要用到format方法。
Date date=new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
sdf.format(date);
如果需要将"yyyy-MM-dd"String类型的日期转化成日期对象类型,就需要用到parse()得到一个日期类型。
String str= sdf.parse("2019-1-17");