Java生成某时间段内的随机时间

复制代码
package com.aaron;

import java.text.SimpleDateFormat;
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<Date> dates = randomDate("2021-6-21 00:00:00", "2021-07-01 23:59:59", 100,-1);
dates.forEach(t -> System.out.println(sdf.format(t)));

}


/**
* 生成size数量的随机时间,位于[start,end)范围内 时间倒序排列
* @param start 开始时间
* @param end 结束时间
* @param size 生成时间个数
* @param order 结果排序:-1时间倒叙,0 乱序,1时间正序
* @return List<Date>
* @throws Exception
*/
public static List<Date> randomDate(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;
}

}
复制代码
posted @   不是诗人是寂寞的人  阅读(1643)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
点击右上角即可分享
微信分享提示