Date
*代表的是日期和时间
构造器 | 说明 |
public Date() | 创建一个Date对象,代表的是系统当前此刻日期时间 |
public Date(long time) | 把时间毫秒值转换成Date日期对象 |
常见方法 | 说明 |
public long getTime() | 返回时间从1970年1月1日 走到此刻的总的毫秒数 |
public void setTime(long time) | 设置日期对象的时间为当前时间对应的毫秒值对应的时间 |
import java.util.Date;
public class Test1 {
public static void main(String[] args) {
//目标:掌握Date日期类的使用
//创建一个当前日期的对象,代表系统当前日期信息的
Date a =new Date();
System.out.println(a);
//拿到时间毫秒值
long time=a.getTime();
System.out.println(time);
time+=2*1000;
Date b=new Date(time);
System.out.println(b);
Date c=new Date();
c.setTime(time);
System.out.println(c);
}
}
SimpleDateFormate
代表简单日期格式化,可以用来把日期对象,时间毫秒值格式化成我们想要的的形式。
常见构造器 | 说明 |
public SimpleDateFormate(String pattern) | 创建简单的日期化对象,并封装时间的格式 |
格式化时间的方法 | 说明 |
public final String formate (Date date) | 将日期格式化日期/时间字符串 |
public final String formate (Object time) | 将时间毫秒值格式化日期/时间字符串 |
解析方法 | 说明 |
public Date parse(String source) | 把字符串时间解析成日期对象 |
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class Test {
public static void main(String[] args) throws ParseException {
//目标:掌握SimpleDateFormate的使用
//1、准备一些时间
Date a=new Date();
System.out.println(a);
//获取时间毫秒值
long time =a.getTime();
System.out.println(time);
//格式化日期对象,时间,毫秒值
//H:小时,m:分钟,s:秒,EEE:星期几,a:代表上午还是下午
SimpleDateFormat sbw= new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss EEE a");
String m=sbw.format(a);
String n=sbw.format(time);
System.out.println(m);
System.out.println(n);
//目标:掌握SimpleDateFormate解析字符串对象成为对象时间
String ds="2024-03-02 14:22:22";
//创建简单的日期格式化对象,指定的时间格式一定与被解析的时间格式一模一样,否则会出现bug
SimpleDateFormat dsw=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date dsws=dsw.parse(ds);
System.out.println(dsws);
}
}
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class MiaoShaHuoDong {
public static void main(String[] args) throws ParseException {
//目标:完成秒杀案例
//1、把开始时间,结束时间,小皮下单时间,小贾下单时间拿到程序中来
String start = "2023年11月11日 00:00:00";
String end = "2023年11月11日 0:10:0";
String xip = "2023年11月11日 0:1:18";
String xija = "2023年11月11日 0:10:57";
//2、把字符串时间解析成日期对象
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
Date startdt =sdf.parse(start);
Date enddt = sdf.parse(end);
Date xipdt = sdf.parse(xip);
Date xijadt = sdf.parse(xija);
//3、开始判断小皮和小贾是否秒杀成功了
//把日期对象转换成时间毫秒值来判断
long st=startdt.getTime();
long et=enddt.getTime();
long pt=xipdt.getTime();
long gt=xijadt.getTime();
if (st<=pt&&pt<=et) {
System.out.println("小皮秒杀成功");
}else{
System.out.println("小皮秒杀失败");
}
if (st<=gt&><=et) {
System.out.println("小贾秒杀成功");
}else{
System.out.println("小贾秒杀失败");
}
}
}
Calender
*代表的是系统此刻时间对应的日历
*通过它可以单独获取、修改时间中的年月日,时分秒等。
Calender日历类的常见方法
方法名 | 说明 |
public static Calender getInstance() | 获取当前日历对象 |
public int get (int field) | 获取日历中的某个信息 |
public final Date getTime() | 获取日期对象 |
public long getTimeInMillis() | 获取时间毫秒值 |
public void set (int field,int value) | 修改日历的某个信息 |
public void add(int field,int amount) | 为某个信息增加或减少某个指定的值 |
import java.util.Calendar;
import java.util.Date;
public class Test1 {
public static void main(String[] args) {
//掌握Calender的使用和特点
//1、得到系统此刻时间对应的日历对象
Calendar now=Calendar.getInstance();
System.out.println(now);
//获取日历中的某个信息
int year=now.get(Calendar.YEAR);
System.out.println(year);
int days=now.get(Calendar.DAY_OF_YEAR);
System.out.println(days);
//获取日期对象
Date a=now.getTime();
System.out.println(a);
//拿到时间毫秒值
long b=now.getTimeInMillis();
System.out.println(b);
//修改日历中的某个信息
now.set(Calendar.MONTH,9);//修改月份成为十月份,月份是从0开始的
System.out.println(now);
//为某个信息增加或是减少多少
now.add(Calendar.DAY_OF_YEAR,125);
System.out.println(now);
now.add(Calendar.DAY_OF_YEAR,-12);
System.out.println(now);
}
}
注意:Calender是可变对象,一旦修改,对象本身表示的时间将发生变化。