API-时间类
Date
jdk8之前
1.构造
代表当前的日期和时间
1.Date d1=new Date();当前的时间编译成对象
2.Date d2=new Date(long time);时间毫秒值代表的Date日期对象
long 类型需要在写L 及8L
2.常用方法
public long getTime();获取从1970-1-1到现在的毫秒值总数
void setTime();设置时间对象
SimpleDateFormat
使用加构造
实际上,他如果是空参构造就是他的默认的格式
但是需要一个Date对象来获取当前的时间;
再调用format方法就可以实现实例化了
自定义的时候,yyyy代表年,MM代表月 dd代表日, HH小时 mm分钟 ss秒
需要先定义模式,在传入数据才可以
Calendar
代表的是系统此刻时间对应的日历,通过他可以单独获取、修改时间中的年月日时分秒等
抽象类
1。获取当前日期的对象
Calendar c=Calendar.getInstance();
注意的是他的月份是0-11进行的
2.get()
获取指定字段的信息
int i=c.get(int x);
x=1 -- 获取年份2-月,3-日
但是不建议写数字,建议写常量
年
int x=c.get(Calendar.YEAR);
月
月份需要进行+1处理
int x=c.get(Calendar.MONTH);
日
int x=c.get(Calendar.DAY);
//星期:每周的第一天是星期日
// 1日 2一 3二 4三 5四 6五 7六
int x=c.get(Calendar.DAY_OF_WEEK);
//获取一年中的第多少天
int x=c.get(Calendar.DAY_OF_YEAR);
3.set
void set(int field,int value);//修改;
例如:
c.set(Calender.YEAR,2022);
4.add
增加/减少某个值
void add(int field,int value);//跟上面那个差不多
5.小使用
LocalDateTime
不可以改变,修改完之后返回的是一个新的对象
1。创建
//现在的时间
LocalDateTime now = LocalDateTime.now();
//获取指定时间
LocalDateTime now2 = LocalDateTime.of(2020,2,2,10,20,1);
)
2.获取
now.getXXXX();即可
注意一点
getMonth();返回的是英文
getMonthValue();返回的阿拉伯数字
getValue();可以将英文转化为中文
3.修改/
返回的是新的对象,之前的对象并不会改变
实际上就是对象now.withHour(多少的内容)
DateTimeFormatter
日期类格式化
使用
Scanner sc = new Scanner(System.in);
LocalDateTime now=LocalDateTime.now();
DateTimeFormatter f=DateTimeFormatter.ofPattern("yyyy年M月d日");//写一个即可,既可以解析一位也可以两位
//格式化
String date=now.format(f);
System.out.println(date);
//解析
String s2="2008年10月9日";
LocalDate p=LocalDate.parse(s2,f);
System.out.println(p);
Instant
时间戳
构造
Instant now=Instant.now();
有时差
方法
ZoneId
均为static
static Set<String>getAvariableZoneIds();
获取java支持的所有的时区
ZoneId systemDefault();//获取系统默认时区
ZoneId of(String zonId);
获取一个指定时区,例如Asia/ShangHai
Period
时间间隔,年月日
Duration
时分秒
ChronoUnitDemo
均可以计算