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;
// }
}
评论