一、System静态方法
点击查看代码- package com.Tang.StringDay01;
- import org.junit.Test;
- public class DateTimeTest {
- /*
- System类中的currentTimeMillis()方法
- */
- @Test
- public void test3(){
- long time = System.currentTimeMillis();
- //返回当前时间与1970年1月1日0时0分0秒之间以毫秒为单位的时间差
- //称为时间戳
- System.out.println(time);
- }
- }
复制代码 代码运行结果图
二、Date类
点击查看代码- /*
- java.tuil.Date类
- 1.两个构造器的使用
- Date():创建了一个对应当前时间的Date对象
- 创建指定毫秒数的Date对象
- 2.两个方法的使用
- toString():显示当前的年、月、日、时、分、秒
- getTime():获取当前date对象对应的毫秒数,(时间戳)
- 3.java.sql.Date对应着数据库中的日期类型的变量
- */
- @Test
- public void test(){
- //构造器一:Date():创建了一个对应当前时间的Date对象
- Date date1 = new Date();
- System.out.println(date1.toString());
- System.out.println(date1.getTime());//1655192749803
- System.out.println("=====================");
- //构造器二:创建指定毫秒数的Date对象
- Date date = new Date(1655192749803L);
- System.out.println(date);
- System.out.println("=====================");
- //创建Java.sql.Date对象
- java.sql.Date date2 = new java.sql.Date(1655192749803L);
- System.out.println(date2);
- System.out.println("=====================");
- //如何将Java.util.Date对象转换为Java.sql.Date对象
- //情况一:多态
- Date date3 = new java.sql.Date(1655192749803L);
- java.sql.Date date4 = (java.sql.Date)date3;
- //情况二:
- Date date5 = new Date();
- java.sql.Date date6 = new java.sql.Date(date5.getTime());
- }
复制代码 运行结果图

三、Calendar类
1.实例化
方式一:创建其子类(GregorianCalendar)的对象
方式二:调用其静态方法getInstance()
点击查看代码- @Test
- public void test(){
- Calendar calendar = Calendar.getInstance();
- System.out.println(calendar.getClass());//查看对象是由哪个类造的
- //常用方法
- //get()
- int days = calendar.get(Calendar.DAY_OF_MONTH);//获取今天是这个月的第几天
- System.out.println(days);
- int days1 = calendar.get(Calendar.DAY_OF_YEAR);//获取今天是这一年的第几天
- System.out.println(days1);
- //set()
- System.out.println("=============");
- calendar.set(Calendar.DAY_OF_MONTH,22);
- days = calendar.get(Calendar.DAY_OF_MONTH);//获取设置的日期是这个月的第几天
- System.out.println(days);
- //add()
- System.out.println("=============");
- calendar.add(Calendar.DAY_OF_MONTH,3);//想要再此日期上减去3天只需要写成-3即可
- days = calendar.get(Calendar.DAY_OF_MONTH);//获取当前日期是这个月的第几天,然后在此基础上加上3天
- System.out.println(days);
- //getTime():日历类---->Date
- System.out.println("=============");
- Date date = calendar.getTime();
- System.out.println(date);
- //setTime():Date--->日期类
- System.out.println("=============");
- Date date1 = new Date();//获取当前Date
- calendar.setTime(date1);//将Date转化为日期类
- days = calendar.get(Calendar.DAY_OF_YEAR);//获取该日期是这一年的第几天
- System.out.println(days);
- }
复制代码 运行结果图
注意事项:
获取月份时:一月是0,二月是1,依次类推12月是11
获取星期时:周日是1,周一是2,依次类推周六是7
四、SimpleDateFormat类
点击查看代码- /*
- SimpleDateFormat对日期Date类的格式化和解析
- 1.两个操作
- 1.1格式化:日期--->字符串
- 1.2解析:格式化的逆过程,字符串--->日期
- */
- @Test
- public void test4() throws ParseException {
- //实例化SimpleDateFormat:使用默认的构造器
- SimpleDateFormat sdf = new SimpleDateFormat();
- //格式化:日期--->字符串
- Date date = new Date();
- System.out.println(date);
- String format = sdf.format(date);
- System.out.println(format);
- //解析:格式化的逆过程,字符串--->日期
- String str = "2022/6/15 下午4:10";//默认格式
- Date date1 = sdf.parse(str);
- System.out.println(date1);
- System.out.println("=================");
- //格式化与解析方式二:按照指定的方式进行格式化和解析:调用代参的构造器
- SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
- String format1 = sdf1.format(date);
- System.out.println(format1);
- //解析
- Date parse = sdf1.parse("2022-06-15 04:20:53");//必须按照给定的格式,否则会抛异常
- System.out.println(parse);
- }
复制代码 运行结果图
1.练习题:字符串"2022-6-15",转换为Java.sql.Date
点击查看代码- @Test
- public void test5() throws ParseException {
- String birth = "2022-6-15";
- SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
- Date parse = sdf1.parse(birth);
- java.sql.Date date = new java.sql.Date(parse.getTime());
- System.out.println(date);
- }
复制代码 运行结果图
2.练习题:三天打鱼两天晒网,输入两个日期,从第一个日期开始,到第二个日期是请问这天实在打鱼还是在晒网
若在测试单元@Test中无法使用Scanner输入可以参考以下解决方法;
(1)打开idea------找到help-------点击Edit Custom VM Options
(2)在最后添加:-Deditable.java.test.console=true
(3)保存,重新打开idea。
点击查看代码- @Test
- public void test6() throws ParseException {
- //总天数的计算
- //这里在Test测试单元里无法使用Scanner,也就是无法输入日期可参考上图解决方法
- Scanner input = new Scanner(System.in);
- String s = input.nextLine();
- String s1 = input.nextLine();
-
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
- SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
- Date date1 = sdf.parse(s);
- Date date2 = sdf1.parse(s1);
- int totalDay = (int) ((date2.getTime() -date1.getTime()) /(1000 * 60 * 60 *24) + 1);
- System.out.println("从1999-04-06到2022-06-15一共有"+ totalDay+"天");
- if(totalDay % 5 == 1 || totalDay % 5 == 2 || totalDay % 5 == 3)
- System.out.println("这一天在打鱼");
- else
- System.out.println("这一天在晒网");
- }
复制代码 运行结果图
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |