侧边栏壁纸
博主头像
高大北博主等级

所有的再见中,我最喜欢明天见

  • 累计撰写 208 篇文章
  • 累计创建 151 个标签
  • 累计收到 20 条评论
标签搜索

目 录CONTENT

文章目录

随机生成某一段的时间

高大北
2022-09-13 / 0 评论 / 0 点赞 / 49 阅读 / 398 字 / 正在检测是否收录...
package com.dbgs.blct.utils;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Random;
import java.util.stream.Collectors;

public class RandomDateUtil {
    public static void main(String[] args) throws Exception {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        List<String> dates = randomDateString("2022-08-30 00:00:00", "2022-08-30 23:59:59", 1, -1);
//        dates.forEach(t -> System.out.println(sdf.format(t)));
        System.out.println(dates.get(0));
    }

    /**
     * 生成size数量的随机时间,位于[start,end)范围内 时间倒序排列
     * @param start 开始时间
     * @param end 结束时间
     * @param size 生成时间个数
     * @param order 结果排序:-1时间倒叙,0 乱序,1时间正序
     * @return List<Date>
     * @throws Exception
     */
    public static List<Date> randomDateDate(String start, String end, int size, int order) throws Exception {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date startTime = sdf.parse(start);
        Date endTime = sdf.parse(end);
        Random random = new Random();
        List<Date> dates = random.longs(size, startTime.getTime(), endTime.getTime()).mapToObj(t -> new Date(t)).collect(Collectors.toList());
        dates.sort((t1, t2) -> {
            return t1.compareTo(t2) * order;
        });
        return dates;
    }

    public static List<String> randomDateString(String start, String end, int size, int order) throws Exception {
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        Date startTime = sdf.parse(start);
        Date endTime = sdf.parse(end);
        Random random = new Random();
        List<Date> dates = random.longs(size, startTime.getTime(), endTime.getTime()).mapToObj(t -> new Date(t)).collect(Collectors.toList());
        dates.sort((t1, t2) -> {
            return t1.compareTo(t2) * order;
        });
        ArrayList<String> strings = new ArrayList<>();
        List<String> collect = dates.stream().map(obj -> sdf.format(obj)).collect(Collectors.toList());
        return collect;
    }

//    public static List<Date> randomDate(String start, String end) throws Exception {
//        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//        Date startTime = sdf.parse(start);
//        Date endTime = sdf.parse(end);
//        Random random = new Random();
//       String dates = random.longs( startTime.getTime(), endTime.getTime()).mapToObj(t -> new Date(t));
//        return dates;
//    }
}
0

评论区