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类型,加LDate 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];}
}