Date:
demo1:
package Date;
import java.util.Date;
public class demo1 {
public static void main(String[] args) {
//1.创建对象表示一个时间
Date d = new Date();
System.out.println(d);
//2.形参是long类型,加L
Date d1 = new Date(0L);
System.out.println(d1);
//3.修改时间 1000毫秒 = 1秒
d.setTime(1000L);
System.out.println(d);
//4.getTime()获取当前时间毫秒值
long time = d.getTime();
System.out.println(time);
}
}
demo2:
package Date;
import java.util.Date;
import java.util.Random;
public class demo2 {
public static void main(String[] args) {
//需求1:打印时间原点开始一年之后的时间
Date d = new Date(365 * 24 * 60 * 60 * 1000L);
System.out.println(d);
System.out.println(d.getTime());
//setTime是在原点的基础上设置的
d.setTime(1000L);
System.out.println(d);
System.out.println(d.getTime());
System.out.println("------------------------------");
//需求2:定义任意两个Date对象,比较一下哪个时间在前,哪个时间在后
Random r = new Random();
int num1 = Math.abs(r.nextInt());
Date d1 = new Date(num1);
System.out.println(d1);
System.out.println("------------------------------");
int num2 = Math.abs(r.nextInt());
Date d2 = new Date(num2);
System.out.println(d2);
if (d1.getTime() > d2.getTime()) {
System.out.println(d1 + "在" + d2 + "之后");
} else if (d1.getTime() < d2.getTime()) {
System.out.println(d1 + "在" + d2 + "之前");
} else {
System.out.println(d1 + "与" + d2 + "一样");
}
}
}
SimpleDateFormate:
package Date;
import java.text.ParseException;
import java.util.Date;
public class SimpleDateFormat {
public static void main(String[] args) throws ParseException {
//format格式化,日期对象->字符串
//利用空参构造创建SimpleDateFormat对象
java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat();
String format = sdf.format(new Date());
System.out.println(format);
//利用带参构造创建SimpleDateFormat对象
java.text.SimpleDateFormat sdf1 = new java.text.SimpleDateFormat("yyyy-MM-dd HH时mm分ss秒 E");
System.out.println(sdf1.format(new Date()));
System.out.println("------------------------");
//parse解析,字符串->日期对象
//1.定义一个时间表示字符串
String str = "2020-06-06 08:08:08 星期五";
//2.利用空参构造创建simpleDateFormat对象
//细节:
//创建对象的格式要跟字符串的格式完全一致
java.text.SimpleDateFormat sdf2 = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss E");
Date parse = sdf2.parse(str);
System.out.println(parse);
System.out.println(parse.getTime());
}
}
demo3:
package Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class demo3 {
public static void main(String[] args) throws ParseException {
//假设,你初恋的出生年月日为:2000-11-11请用字符串表示这个数据,并将其转换为:2000年11月11日
String birthday = "2000-11-11";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date parse = sdf.parse(birthday);
System.out.println(parse);
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy年MM月dd日");
String format = sdf1.format(parse);
System.out.println(format);
}
}
demo4:
package Date;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class demo4 {
public static void main(String[] args) throws ParseException {
/*需求:
秒杀活动:2023年11月11日0:0:0
结束时间:2023年11月11日0:10:0
小贾下单并付款的时间为:2023年11月11日0:01:00
小皮下单并付款的时间为:2023年11月11日0:11:0
用代码说明这两位同学有没有参加上秒杀活动?*/
String startTime = "2023-11-11 00:00:00";
String endTime = "2023-11-11 00:10:00";
String xiajiaTime = "2023-11-11 00:01:00";
String xiapiTime = "2023-11-11 00:11:00";
SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date parse1 = sdf1.parse(startTime);
Date parse2 = sdf1.parse(endTime);
Date parse3 = sdf1.parse(xiajiaTime);
Date parse4 = sdf1.parse(xiapiTime);
if (parse3.getTime() >= parse1.getTime() && parse3.getTime() <= parse2.getTime()) {
System.out.println("小贾参加");
} else if (parse4.getTime() >= parse1.getTime() && parse4.getTime() <= parse2.getTime()) {
System.out.println("小皮参加");
}else{
System.out.println("都没有参加");
}
}
}
Calendar
demo1:
package Calendar;
import javax.xml.crypto.Data;
import java.util.Calendar;
import java.util.Date;
public class demo1 {
public static void main(String[] args) {
//public static calendar getInstance() 获取当前时间的日历对象
//细节1:Calendar是一个抽象类,不能直接new,而是通过一个静态方法获取到子类对象
//底层原理:
//会根据系统的不同时区来获取不同的日历对象,默认表示当前时间。
//把会把时间中的纪元,年,月,日,时,分,秒,星期,的都放到一个数组当中
//0 纪元
//1 年
//2 月
//3 一年中的第几周
//4 一个月中的第几周
//5 一个月中的第几周一个月中的第几天(日期)
//细节2:
//月份:范围0~11 如果获取出来的是0.那么实际上是1月
//星期:在老外的眼里,星期日是一周中的第一天
// 1(星期日) 2(星期一) 3(星期二) 4(星期三) 5(星期四) 6(星期五) 7(星期六)
Calendar c = Calendar.getInstance();
//final Date getTime() 获取日期对象
Date d = new Date();
c.setTime(d);
System.out.println(c);
//public final setTime(Date date) 给日历设置日期对象
//public long getTimeInMillis() 拿到时间亳秒值
//public void setTimeInMillis(long millis) 给日历设置时间亳秒值
//public void set(int field,int value) 修改日历的某个字段信息
c.set(Calendar.YEAR, 1999);
c.set(Calendar.MONTH, 1);
c.set(Calendar.DAY_OF_MONTH, 12);
//public int get(int field) 取日期中的某个字段信息
int year = c.get(Calendar.YEAR);
int month = c.get(Calendar.MONTH) + 1;
int day = c.get(Calendar.DAY_OF_MONTH);
String week = getWeek(c.get(Calendar.DAY_OF_WEEK));
System.out.println(year + "-" + month + "-" + day + " " + week);
//public void add(int field,int amount) 为某个字段增加/减少指定的值
c.add(Calendar.MONTH, 1);
year = c.get(Calendar.YEAR);
month = c.get(Calendar.MONTH) + 1;
day = c.get(Calendar.DAY_OF_MONTH);
week = getWeek(c.get(Calendar.DAY_OF_WEEK));
System.out.println(year + "-" + month + "-" + day + " " + week);
}
//查表法:
//表:容器
//让数据跟索引产生对应的关系
//传入对应的数字:1~7
//返回对应的星期
public static String getWeek(int index) {
String[] arr = {"", "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
return arr[index];
}
}