日期时间类API
Date()类
Date类对象在Java中代表的是当前所在系统的此刻日期时间。
Date类对象创建方式,构造器创建对象。 public Date()
Date常用方法 public long getTime() 获取时间对象的毫秒值。
将时间毫秒值转成日期对象的方法。 构造器内直接添加毫秒值,
或者Date对象的方法:public void setTime(long time)设置日期对象的时间为当前毫秒值的时间
将日期对象转换成毫秒值的方法 Date对象.getTime(),用日期对象调用该方法实现转换
package com.itheima.d1_DateDemo;
import java.util.Date;
public class d1_DateDemo {
public static void main(String[] args) {
//创建日期对象 获取当前时间
Date d = new Date();
System.out.println(d);
//将日期对象转换成毫秒值
long time1 = d.getTime();
System.out.println(time1);
System.out.println("-------------------");
Date d1 = new Date();
System.out.println(d1);
long time = System.currentTimeMillis();
time += (60 * 60 +121) *1000;
//--------
//毫秒值转化成对象
// 将时间毫秒值转日期对象
// Date d2 = new Date(time);
// System.out.println(d2);
Date d3 = new Date();
d3.setTime(time);
System.out.println(d3);
}
}
SimpleDateFormat类
因为Date类创建出来的对象打印出的日期是美式的日期,看的很不舒服,那么有什么方法可以转化成xx年xx月xx日呢? 这里就引入SimpleDateFormat类,这个类的主要作用就是格式化这个日期对象,并按照对应格式解析。
创建格式
SimpleDateFormat spf = new SimpleDataFormat("解析格式")
package com.itheima.d2_simpleDateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
public class SdfDemo {
public static void main(String[] args) {
Date d= new Date();
System.out.println(d);
//格式化这个日期对象 EEE取星期几 a取上午还是下午
SimpleDateFormat d1 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss EEE a");
String rs= d1.format(d);
System.out.println(rs);
System.out.println("-----------------");
long time = System.currentTimeMillis() + 121 * 1000 ;
String rs2 = d1.format(time);
System.out.println(rs2);
System.out.println("----------解析字符串时间------------");
}
}
public void parse()方法 将字符串时间解析成日期对象,使用方法:
package com.itheima.d2_simpleDateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class sdfDemo2 {
public static void main(String[] args) throws ParseException {
Date d= new Date();
// 2021年08月06日 11:11:11 往后 2天14小时 49分06秒后的时间
String dateStr = "2021年08月06日 11:11:11";
// 把字符串时间解析成日期对象(本节的重点)
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
Date d1 = sdf.parse(dateStr);
System.out.println(d1);
// 往后走两天 14 小时 49分 06秒
long time = d1.getTime() + (2L*24*60*60 + 14*60*60 + 49*60 + 6)*1000 ;
System.out.println(sdf.format(time));
}
}
calander类
日历类,创建calander类对象获取一个当前时间日历对象。接下来的代码演示一下calander类中常用的方法。
package com.itheima.d3_calander;
import java.util.Calendar;
import java.util.Date;
public class CalanderDemo {
public static void main(String[] args) {
//创建日历对象
Calendar cal = Calendar.getInstance();
System.out.println(cal);
//2.获取日历的信息是: public int get(int field): 取日期中的某个字段信息。
int year = cal.get(Calendar.YEAR);
System.out.println(year);
int mm = cal.get(Calendar.MONTH) + 1;
System.out.println(mm);
int days = cal.get(Calendar.DAY_OF_YEAR);
System.out.println(days);
//修改日历中的某个字段信息。
cal.set(Calendar.HOUR ,12);
System.out.println(cal);
//public void add(int field, int amount) 为某个字段增加/减少指定的值
cal.add(Calendar.DAY_OF_YEAR, 64);
cal.add(Calendar.MINUTE, 59);
//public final Date getTime() 拿到此刻日期对象
Date d= cal.getTime();
System.out.println(d);
//public long getTimeMillis 拿到日期毫秒值
long a = cal.getTimeInMillis();
System.out.println(a);
//注意调用修改方法的时候 那么拿到的日历对象就不是刚开始创建的日历对象了
}
}
包装类
包装类概述:java的设计思想就是一切皆对象,但是八种基本数据类型不属于对象,因此包装类就是为八种基本数据类型提供相对应的引用数据类型。在集合和泛型中支支持引用数据类型。
包装类特点:自动装箱和自动拆箱
自动装箱:基本数据类型变量可以随意转换成包装类引用数据类型变量
自动拆箱:包装类引用数据类型变量可以随意转换成基本数据类型变量
作用:防止基本类型数据变量被赋值成null运行报错。
包装类作用:1.包装类可以把基本数据类型变量转换成字符串形式,当然我们可以直接在基本数据后面拼接空字符串。
2.包装类可以直接把字符串类型转换成真是数据类型(这个很有用)
包装类.valueof(字符串) 但是这个字符串里面只能是整数或者小数 例如 9 和 99.9 如果字符串是99.a这种的话 就会报错