目录
2、SimpleDateFormat类实现日期和字符串的相互转换
5、补充 BigInteger概述 可以让超过long范围内的数据进行运算
1、Date类的概述和方法使用
Date类的概述
类 Date 表示特定的瞬间,精确到毫秒
构造方法
public Date()
public Date(long date) //把一个long类型的毫秒值转换成一个日期对象
成员方法
public long getTime():
获取一个日期对象对象毫秒值
public void setTime(long time):
给一个日期对象设置上指定的毫秒值 例:date.setTime(1000 * 60 * 60) ;
package org.westos.demo;
import java.util.Date;
public class MyTest {
public static void main(String[] args) {
Date date = new Date();
//getTime() 获取从计算机历元年,到现在所间隔的毫秒值
long time = date.getTime();
long timeMillis = System.currentTimeMillis();
System.out.println(time);
System.out.println(timeMillis);
System.out.println("=======================");
Date date1 = new Date();
// //在计算机历元年 上加上对应的毫秒值
date1.setTime(1000*60*60);
System.out.println(date1);
}
}
Date ---- long 的转换
调用getTime方法long --- Date 的转换
可以使用构造方法
setTime(long time)
package org.westos.demo;
import java.util.Date;
public class MyTest3 {
public static void main(String[] args) {
/* Date---- long 的转换
调用getTime方法
long ---Date 的转换
可以使用构造方法
setTime( long time)*/
Date date = new Date();
long time = date.getTime();
System.out.println(time);
long timeNum=2252525252525255L;
Date date1 = new Date(timeNum);
System.out.println(date1);
}
}
2、SimpleDateFormat类实现日期和字符串的相互转换
SimpleDateFormat:
可以把一个日期对象格式化成一个文本(字符串) , 也可以把一个日期字符串解析成一个日期对象
构造方法:
public SimpleDateFormat():
使用默认的模式来创建一个SimpleDateFormat对象
public SimpleDateFormat(String pattern):
使用指定的模式(规则比如yyyy:MM:dd HH:mm:ss)来创建一个SimpleDateFormat对象
规则的定义:
成员方法:
public String format(Date date):
把一个日期对象格式化成一个字符串
package org.westos.demo;
import java.text.SimpleDateFormat;
import java.util.Date;
public class MyTest {
public static void main(String[] args) {
Date date = new Date();
//日期格式化类
SimpleDateFormat sd = new SimpleDateFormat();
String format = sd.format(date);//把日期转换成日期字符串
System.out.println(format);
//指定格式来转换
SimpleDateFormat sd2 = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss E");
String format1 = sd2.format(date);//把日期Date对象 转换成日期字符串
System.out.println(format1);
}
}
public Date parse(String dateStr):
把一个日期字符串解析成一个日期对象 注意要以指定格式解析
package org.westos.demo;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class MyTest1 {
public static void main(String[] args) throws ParseException {
String datestr="2021-12-22 13:30:00";
// //把日期字符串,转换成日期对象,注意格式要对应,不然就会解析失败
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date parse = simpleDateFormat.parse(datestr);
System.out.println(parse);
}
}
3、你来到这个世界多少天案例
练习:
需求:算一下你来到这个世界多少天?
a: 键盘录入一个生日(日期字符串)
b: 把这个日期字符串对象解析成一个日期对象
c: 获取b中的日期对象对应的毫秒值
d: 获取当前系统时间对应的毫秒值
e: 使用d中的毫秒值 - c中的毫秒值
f: 把e中的差值换算成对应的天 差值/1000/60/60/24
g: 输出
package org.westos.demo2;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;
public class MyTest {
public static void main(String[] args) throws ParseException {
/* A:
案例演示:
需求:算一下你来到这个世界多少天 ?*/
Scanner scanner = new Scanner(System.in);
System.out.println("请输入你的生日例如: 1990-10-10");
String birthday= scanner.nextLine();
//算出他出生那天的毫秒值
Date date = new SimpleDateFormat("yyyy-MM-dd").parse(birthday);
long start = date.getTime();
//再算出现在的毫秒值
long now = System.currentTimeMillis();
System.out.println("你来到这个世界"+((now-start)/1000/60/60/24)+"天");
}
}
4、Calendar类的概述和获取日期的方法
Calendar类的概述
Calendar 类是一个抽象类,不能直接new对象,可以通过他的一个静态成员方法getInstance()来获取他的对象
它为特定瞬间与一组诸如 YEAR、MONTH、DAY_OF_MONTH、HOUR
等日历字段之间的转换提供了一些方法,并为操作日历字段(例如获得下星期的日期)提供了一些方法
成员方法
public static Calendar getInstance()
使用默认时区和语言环境获得一个日历对象
public int get(int field)
获得给定日历字段对应的值 field通过Calendar提供的字段来拿
public final void set(int year,int month,int date)
设置日历时间 年月日
package org.westos.demo2;
import java.util.Calendar;
public class MyTest2 {
public static void main(String[] args) {
// static Calendar getInstance ()
// 使用默认时区和语言环境获得一个日历
//月份由从 0 至 11 的整数表示;0 是一月、1 是二月等等;因此 11 是十二月。
Calendar instance = Calendar.getInstance();
System.out.println(instance);
int i = instance.get(Calendar.YEAR);
int i1 = instance.get(Calendar.MONTH);
int i2 = instance.get(Calendar.DAY_OF_MONTH);
int i3 = instance.get(Calendar.HOUR_OF_DAY); //24小数制
int i4 = instance.get(Calendar.HOUR); //12小数
int i5 = instance.get(Calendar.MINUTE);
int i6 = instance.get(Calendar.SECOND);
System.out.println(i);
System.out.println(i1);
System.out.println(i2);
System.out.println(i3);
System.out.println(i4);
System.out.println(i5);
System.out.println(i6);
System.out.println("======================");
Calendar instance1 = Calendar.getInstance();
instance1.set(Calendar.YEAR,2022); //单独设置某个日期字段
int i7 = instance1.get(Calendar.YEAR);
System.out.println(i7);
//设置年月日,时分秒
instance1.set(2020,10,10,16,30,30);
}
}
public void add(int field,int amount)
根据日历的规则,为给定的日历字段添加或减去指定的时间量
package org.westos.demo2;
import java.util.Calendar;
public class MyTest3 {
public static void main(String[] args) {
//减去时间量和添加时间量
Calendar instance = Calendar.getInstance();
instance.add(Calendar.YEAR,1);
int i = instance.get(Calendar.YEAR);
System.out.println(i);
//给出 负数值,就是减去
instance.add(Calendar.HOUR_OF_DAY,-1);
int i1 = instance.get(Calendar.HOUR_OF_DAY);
System.out.println(i1);
}
}
5、补充 BigInteger概述
可以让超过long范围内的数据进行运算
构造方法
public BigInteger(String val)
成员方法
public BigInteger add(BigInteger val)
public BigInteger subtract(BigInteger val)
public BigInteger multiply(BigInteger val)
public BigInteger divide(BigInteger val)
public BigInteger[] divideAndRemainder(BigInteger val)
package org.westos.demo2;
import java.math.BigInteger;
public class MyTest6 {
public static void main(String[] args) {
//BigInteger
long a = Long.MAX_VALUE;
long b = Long.MAX_VALUE;
long num=a+b;
System.out.println(num);
BigInteger bigInteger1 = new BigInteger(a + "");
BigInteger bigInteger2 = new BigInteger(b+ "");
BigInteger add = bigInteger1.add(bigInteger2);
System.out.println(add.toString());
}
}