一、Date类
类 Date 表示特定的瞬间,精确到毫秒。
包为:java.util.Date
Date类常用方法:
String format(Date date)
例子:
//空参构造,获取到当前操作系统时间
Date date = new Date();
//带参构造,传递一个毫秒值,传成对应的日期对象,返回long
Date date1 = new Date(0);
//Date类的getTime()方法,将时间转化成一个毫秒值
long time = date.getTime();
//Date类的setTime(),传递一个毫秒值,将毫秒值转化成一个日期对象
date.setTime(0);
二、DateFormat类
DateFormat 是日期/时间格式化子类的【抽象类】,它以与语言无关的方式格式化并解析日期或时间。日期/时间格式化子类(如 SimpleDateFormat类)允许进行格式化(也就是日期 -> 文本)、解析(文本-> 日期)和标准化。
包为:java.text.SimpleDateFormat
类常用方法:
String format(Date date)
Date parse(String source)
(1)对日期进行格式化
//1、创建SimpleDateFormat对象,写入格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH点mm分钟ss秒");
//2、SimpleDateFormat类调用方法format()对日期进行格式化
String date = sdf.format(new Date());
日期模式:
yyyy 年份
MM 月份
dd 月中的天数
HH 0-23小时
mm 小时中的分钟数
ss 秒
(2)将字符串转换成日期对象(String to Date)
DateFormat类方法:Date parse(String s)
public static void main(String[] args)throws Exception{
stringToDate();
}
public static void stringToDate()throws Exception{
//1、创建SimpleDateFormat对象
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
//2、子类对象,调用方法parse 传递String,返回Date
Date date = sdf.parse("1996-5-6");
System.out.println(date);
//运行结果为:Mon May 06 00:00:00 CST 1996
}
三 、Calendar类
包: java.util.Calendar
Calendar是日历类,在Date后出现,替换掉了许多Date的方法。该类将所有可能用到的时间信息封装为静态成员变量,方便获取。
Calendar为抽象类,由于语言敏感性,Calendar类在创建对象时并非直接创建,而是通过静态方法创建,将语言敏感内容处理好,再返回子类对象.如下:
//Calendar类静态方法 static Calender getInstance()
Calendar cal = Calendar.getInstance();//返回当前日历
其返回结果
java.util.GregorianCalendar[time=1510712024754,
zone=sun.util.calendar.ZoneInfo[id=”Asia/Shanghai”,
offset=28800000,dstSavings=0,useDaylight=false,
transitions=19,lastRule=null],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,
YEAR=2017,MONTH=10,WEEK_OF_YEAR=46,WEEK_OF_MONTH=3,DAY_OF_MONTH=15,
DAY_OF_YEAR=319,DAY_OF_WEEK=4,DAY_OF_WEEK_IN_MONTH=3,
AM_PM=0,HOUR=10,HOUR_OF_DAY=10,MINUTE=13,SECOND=44,MILLISECOND=754,
ZONE_OFFSET=28800000,DST_OFFSET=0]
(1)获取时间字段值——get()
/*public int get(int field) //获取时间字段值,字段参见帮助文档
YEAR 年
MONTH 月,从0开始算起,最大11;0代表1月,11代表12月。
DATE 天
HOUR 时
MINUTE分
SECOND秒
*/
package DateLearn;
import java.util.Calendar;
public class CalendarDemo {
public static void main(String[] args) {
// TODO Auto-generated method stub
//获取日期对象
Calendar cal = Calendar.getInstance();
//public int void get(int field) //获取时间字段值
int year =cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH);
int day = cal.get(Calendar.DAY_OF_MONTH);
System.out.println(year+" "+month+" "+day);
}
}
(二)设置指定字段的值——set()
常见的两种set函数:
*set(int filed,int value);
*set(int year,int month,int day);
举例:
Calendar cal = Calendar.getInstance();
//第一种
cal.set(Calendar.MONTH,9);
//第二种
cal.set(2099,5,1);
(三)指定字段增加某值——add()
add(int field,int value)
日历的偏移量,可以指定一个日历中的字段,进行整段偏移
举例:
/**
*我现在的时间是2017年11月15号,将日期向后推移280天后,
*打印的时间为2018 7 22
**/
public static void addCalendar(){
Calendar cal = Calendar.getInstance();
//将日期向后推移280天
cal.add(Calendar.DAY_OF_MONTH, 280);
int year =cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH);
int day = cal.get(Calendar.DAY_OF_MONTH);
System.out.println(year+" "+month+" "+day);
}