springboot中的单元测试-时间格式 定时任务

一:jdk8中的时间格式的所写:

@RunWith(SpringRunner.class)
@SpringBootTest
@Slf4j
public class LocalDateTest {


    /**
     * 这是简单的使用localDate工具类
     */
    @Test
    public void testLocalDate(){
        //获取到年月日的日期
        LocalDate date = LocalDate.now();  //只能用做年月日格式
        LocalTime time = LocalTime.now();  //只能用作时分秒
        LocalDateTime now = LocalDateTime.now();  //专门用来处理年月日,时分秒的工具类
        log.info("年月日为:{}, 时分秒格式为:{}, 年月日时分秒为:{}", date, time, now);
    }

    /**
     * 定制的时间格式的测试方法
     */
    @Test
    public void special(){
        LocalDate localdate = LocalDate.of(2020, 10, 12);
        //时分秒
        LocalTime time = LocalTime.of(21, 45, 45);
        //年月日,时分秒
        LocalDateTime dateTime = LocalDateTime.of(2020, 9, 23, 19, 34, 45);
        log.info("年月日:{}, 时分秒:{}, 年月日时分秒:{}", localdate, time, dateTime);
    }


    /**
     * 常见的redis中方法以及分别对应的功能作用
     */
    @Test
    public void functionTest(){
        //获取到具体定制的时间
        LocalDate date = LocalDate.of(2020, 10, 21);
        //获取本月的第一天,输出2019-10-01
        date.with(TemporalAdjusters.firstDayOfMonth());
        //获取本月的最后一天
        date.with(TemporalAdjusters.lastDayOfMonth());
        //本年的第一天
        date.with(TemporalAdjusters.firstDayOfNextYear());
        //本年的最后一天
        date.with(TemporalAdjusters.lastDayOfYear());
        //本月的第2周的周五,输出时:2020-10-11
        date.with(TemporalAdjusters.dayOfWeekInMonth(2, DayOfWeek.FRIDAY));
        //下一个月的第一天,当
        date.with(TemporalAdjusters.firstDayOfNextYear());
        //加一天,输出是
        date.plusDays(1);
        //加一周
        date.plusWeeks(1L);
        //加一个月
        date.plusMonths(1L);
    }


    /**
     * 时间之间的比较
     */
    public void compare(){
        LocalDate first = LocalDate.now();
        LocalDate of = LocalDate.of(2015, 12, 23);
        //两个时间之间的比较
        boolean before = first.isBefore(of);
        boolean after = first.isAfter(of);
        boolean equal = first.isEqual(of);
        log.info("时间之间的比较值为:{}, {}, {}", before, after, equal);
    }

    /**
     * dateToString -- 将一个date字符串化
     */
    public void dateToString(){
        LocalDate now = LocalDate.now();
        String format = now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
        log.info("其中时间转换为string的结果为:{}", format);
    }
}

定时任务:
只需在启动类上添加注解,同时在一个类上面添加一个注解,并且注意在类上面

@SpringBootApplication
@EnableScheduling
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }

}

//在自己编写的类编写一个定时cron表达式
@Component
public class TimeTask {

    /**
     * 就是两次任务开始间隔的时间
     */
    @Scheduled(fixedRate = 2000)
    public void fixedRate(){
        System.out.println("每隔2秒钟执行");
    }

    @Scheduled(fixedDelay = 2000)
    public void fixedDelay(){
        System.out.println("本次任务结束到下次开始的时间间隔");
    }

    @Scheduled(cron = "0/5 * * * * *")
    public void cron(){
        System.out.println("测试cron表达式的方法");
    }


    /**
     * 注意其中的通配符
     * ? 表示不指定值
     * * 表示所有的时间值,表示每一秒都会触发
     * ,用来分开多个值例如10-12表示10-12都会触发
     * -表示区间10--12都会触发
     * /用于递增触发 秒5/15表示5秒开始,每增15秒触发
     * #序号(表示每月的第几个周几) 6#3 每个月的第三个周五
     * 例如在周字段设置6#3表示每个月的第三个周六
     * L 表示最后的意思 日字段设置为当月的最后一天
     * W表示离指定日期的最近的工作日,例如在日字段上设置15W
     * 表示的就是离15号最近的工作日
     * LW可以一组合使用,如果在日字段设置“LW"
     * 则表示在本月的最后一个工作日
     */

    /**
     * 其中的cron中的表达式分别代表的
     * 秒 分 时 日 月 周 年 其中年是可以省略的
     */

    //表示的就是每天上午10,下午2 , 4点触发
//     "0 0 10,14,16 * * ?

    //朝九晚五工作时间内每半小时
//    0 0/30 9-17 * * ?

    //每个星期三中午12点
//    0 0 12 ? * WED

    //每天中午12点
//    0 0 12 ? * *

    //每天上午10:15分执行
//    0 15 10 * * ?

    //每天上午10:15执行
//    0 15 10 * * ? *

    //2005年的每天的上午10:15分执行
//    0 15 10 * * ? 2005

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值