JAVA 日期类
1)Data类
Date类用来表示特定的瞬间它可以精确到毫秒。
构造方法
public Date() 表示自从标准基准时间(称为“历元(epoch,即 1970 年 1 月 1 日 00:00:00 GMT)以来的指定毫秒数。
public Date(long date) 把一个long类型的毫秒值转换成一个日期对象
public long getTime(): 获取一个日期对象对象毫秒值
public void setTime(long time): 给一个日期对象设置上指定的毫秒值
成员方法
public class DateDemo {
public static void main(String[] args) {
// 类 Date 表示特定的瞬间,精确到毫秒。
Date date = new Date();
System.out.println(date.toString());
//SSun Oct 28 20:45:47 CST 2018外国人的时间格式
Date date2 = new Date(1000 * 60 * 60*24);
System.out.println(date2.toString());//Fri Jan 02 08:00:00 CST 1970
long l = System.currentTimeMillis();
System.out.println(l);//1540730747742
long time = new Date().getTime();//获取当前系统的毫秒值
System.out.println(time);//1540730747742
Date date1 = new Date();
date1.setTime(1000 * 60 * 60 * 24);
System.out.println(date1);//Fri Jan 02 08:00:00 CST 1970
}
}
Date与long转换
Date---- long
long time = new Date().getTime();
long----date
Date date = new Date(1000L);
2)SimpleDateFormat类 格式化日期
SimpleDateFormat是日期格式化类,他可以将日期格式化为任意形式。
构造方法
public SimpleDateFormat():使用默认的模式来创建一个SimpleDateFormat对象
public SimpleDateFormat(String pattern):使用指定的模式(规则比如yyyy:MM:dd HH:mm:ss)来创建一个SimpleDateFormat对象。
规则的定义
y | M | d | H | m | s | E |
---|---|---|---|---|---|---|
年 | 月 | 天 | 时 | 分 | 秒 | 星期 |
成员方法
public String format(Date date): 把一个日期对象格式化成一个字符串
public Date parse(String dateStr): 把一个日期字符串解析成一个日期对象 注意要以指定格式解析
public class MyDemo {
public static void main(String[] args) throws ParseException{
//使用的式默认格式 在格式化日期 18-10-28 下午8:56
SimpleDateFormat format = new SimpleDateFormat();
System.out.println(format.toString());//java.text.SimpleDateFormat@b5341f2a
//把当前日期格式化成一个日期字符串
String date = format.format(new Date());
System.out.println(date);//18-10-28 下午8:56
//使用自定义格式的格式化日期
SimpleDateFormat simp = new SimpleDateFormat("yyyy年MM月dd号 HH点mm分ss秒 E z");
String format1 = simp.format(new Date());//format(new Date() 把当前的日期按照你指定的格式,格式化成字符串
System.out.println(format1);//2018年10月28号 20点56分54秒 星期日 CST
//解析字符串
String dateStr = "2018-10-10 10:30:30";
//ParseException 解析异常
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
// public Date parse (String dateStr):把一个日期字符串解析成一个日期对象 注意要以指定格式解析
Date date = simpleDateFormat.parse(dateStr);//把日期字符串 解析成日期对象 注意格式要对应
System.out.println(date);//Wed Oct 10 10:30:30 CST 2018
}
}
3)Calendar 类
Calendar 类是一个抽象类,它为特定瞬间与一组诸如YEAR、MONTH、DAY_OF_MONTH、HOUR 等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法。
日历字段
字段 | 表示 | 字段 | 表示 |
---|---|---|---|
MONTH | 月份 | WEEK_OF_YEAR | 当年中的周数 |
WEEK_OF_MONTH | 当月中的周数 | DAY_OF_MONTH | 当月中的天数 |
DAY_OF_YEAR | 当年中的天数 | DAY_OF_WEEK | 当周中的天数 |
DAY_OF_WEEK_IN_MONTH | 当前月中的第几个星 | AM_PM | HOUR 是在中午之前还是在中午之后 |
HOUR | 小时 | HOUR_OF_DAY | 一天中的小时 |
MINUTE | 一小时中的分钟 | SECOND | 一分钟的秒 |
MILLISECOND | 一秒中的毫秒 | ZONE_OFFSET | 以毫秒为单位指示距 GMT 的大致偏移量 |
成员方法
public static Calendar getInstance() 使用默认时区和语言环境获得一个日历对象
//拿到Calendar类的对象
public int get(int field) 获得给定日历字段对应的值 field通过Calendar提供的字段来拿
public void add(int field,int amount) 根据日历的规则,为给定的日历字段添加或减去指定的时间量
public final void set(int year,int month,int date) 设置日历时间 年月日。
public class MyDemo {
public static void main(String[] args) {
//通过 getInstance()得到对象。
Calendar instance = Calendar.getInstance();
//日历字段
int i = instance.get(Calendar.YEAR);//2018
int i1 = instance.get(Calendar.MONTH);//9
int i2 = instance.get(Calendar.DAY_OF_MONTH);//28
System.out.println(i);
System.out.println(i1);
System.out.println(i2);
//设置日历的方法
instance.set(2019,10,10);
int y = instance.get(Calendar.YEAR);//2019
int m = instance.get(Calendar.MONTH);//10
int d = instance.get(Calendar.DAY_OF_MONTH);//10
System.out.println(y);
System.out.println(m);
System.out.println(d);
//add() 给某个日期字段(年月日等) 增减相应的时间量
Calendar instance = Calendar.getInstance();
instance.add(Calendar.YEAR,-1);
int i = instance.get(Calendar.YEAR);//2017
System.out.println(i);
}
}