时间日期类
- 系统级的时间日期获取
- Date类
- 构造方法
- 常用方法
- 日历类:Calendar
- 常用方法:
- 相互转换
- Date--->Calendar
- Calendar--->Date
- 日期格式化:SimpleDateFormat
- 常用构造方法
- Date和String的相互转换
- Date---->String
- String---->Date
- java8以后优秀的时间日期类:
系统级的时间日期获取
- 返回以毫秒为单位的当前时间,返回当前时间与 1970 年 1 月 1 日午夜之间的时间差(以毫秒为单位测量)。
- 常用来计算一段代码运行所花费的时间
long System.currentTimeMillis();
Date类
- 表示特定的瞬间,精确到毫秒 ,用于表示日期时间。
构造方法
•Date()
Date date =new Date();
•Date(long date)
Date date = new Date(longTime);
常用方法
•boolean after(Date when); 给定时间是否在当前时间以后 当前date大于when
•boolean before(Date when); 给定时间是否在当前时间以前 当前date小于when
•String toString(); 转化为字符串
日历类:Calendar
- Calendar 类是一个抽象类,用于描述一个日历。这个类不能直接初始化,但有个类方法getInstance() 用于创建Calendar对象。使用单例模式实现
static Calendar getInstance(); 使用单例模式来获取此类的一个对象
Calendar ca = Calendar.getInstance();
常用方法:
•int get(int field); 获取指定日期单位的具体值。
int year = ca.get(Calendar.YEAR);
int day = ca.get(Calendar.DAY_OF_MONTH);
int month = ca.get(Calendar.MONTH)+1;
System.out.println(year+"年"+month+"月"+day+"日");
•Date getTime()
转化为Date对象
•void set(int field, int value);
设置指定日期单位的值
•void set(year, month, date);
设置指定的年月日
•void setTime(Date date);
获取一个来自Date实例的时间
•void setTimeInMillis(long millis);
利用时间戳来设置时间
•void add(int field, int value);
为日期单位加上一定的值
相互转换
Date—>Calendar
//Date--->Calendar
Date date = new Date();
Calendar ca = Calendar.getInstance();
ca.setTime(date);
Calendar—>Date
//Calendar----> Date
Date time = ca.getTime();
日期格式化:SimpleDateFormat
- DateFormat抽象类提供了格式化日期的方法, SimpleDateFormat是它的简单实现类。可以将日期格式化成指定格式的字符串;也可将指定格式字符串格式化为日期
常用构造方法
•SimpleDateFormat(String pattern);
SimpleDateFormat("yyyy-MM-dd")
Date date= new Date();
SimpleDateFormat da = new SimpleDateFormat("yyyy-MM-dd");
String format = da.format(date);
System.out.println(format);
Date和String的相互转换
Date---->String
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日,HH点mm分ss秒,W周,E");
String format = sdf.format(date);
System.out.println(format);
String---->Date
String time = "1990-01-01";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-ss");
Date parse = sdf.parse(time);
System.out.println(parse);
java8以后优秀的时间日期类:
LocalDate :表示不带时间的日期
LocalTime:表示不带日期的时间
LocalDateTime:表示日期时间类
ZoneId:时区
Instant:表示时间戳
Clock:表示当前时区下某个瞬时时间
Duration:表示一个精确的时间跨度,以毫秒为单位
Period:表示一个精确的时间跨度,以年月日为单位
DateTimeFormat:进行日期格式化输出